C/C++ ×Ö½Ú¶ÔÆëÎÊÌâ
VCÖÐÏÂÃæ¼¸¸ö½á¹¹Ìå´óС·Ö±ðÊǶàÉÙÄØ
struct MyStruct
{
double m4;
char m1;
int m3£»
};
struct MyStruct {
char m1;
double m4;
int m3;
};
#pragma pack(push) //±£´æ¶ÔÆë״̬
#pragma pack(16) //ÉèÖÃΪ16×Ö½Ú¶ÔÆë
struct test
{
char m1;
int m3;
double m4;
};
#pragma pack(pop)//»Ö¸´¶ÔÆë״̬
Èç¹ûÄãµÄ´ð°¸²»ÊÇ16£¬24ºÍ16£¬ÏàÐÅÏÂÃæµÄÄÚÈݶÔÄãºÜÓаïÖú¡£
1¡¢sizeofÓ¦ÓÃÔڽṹÉϵÄÇé¿ö
Çë¿´ÏÂÃæµÄ½á¹¹£º
struct MyStruct
{
double dda1;
char dda;
int type
};
¶Ô½á¹¹MyStruct²ÉÓÃsizeof»á³öÏÖʲô½á¹ûÄØ£¿sizeof(MyStruct)Ϊ¶àÉÙÄØ£¿Ò²ÐíÄã»áÕâÑùÇó£º
sizeof(MyStruct)=sizeof(double)+sizeof(char)+sizeof(int)=13
µ«Êǵ±ÔÚVCÖвâÊÔÉÏÃæ½á¹¹µÄ´óСʱ£¬Äã»á·¢ÏÖsizeof(MyStruct)Ϊ16¡£ÄãÖªµÀΪʲôÔÚVCÖлáµÃ³öÕâÑùÒ»¸ö½á¹ûÂð£¿
Æäʵ£¬ÕâÊÇVC¶Ô±äÁ¿´æ´¢µÄÒ»¸öÌØÊâ´¦Àí¡£ÎªÁËÌá¸ßCPUµÄ´æ´¢ËÙ¶È£¬VC¶ÔһЩ±äÁ¿µÄÆðʼµØÖ·×öÁË“¶ÔÆë”´¦Àí¡£
¢ÙÔÚĬÈÏÇé¿öÏ£¬VC¹æ¶¨½á¹¹Ìå¸÷³ÉÔ±±äÁ¿´æ·ÅµÄÆðʼµØÖ·Ïà¶ÔÓڽṹµÄÆðʼµØÖ·µÄÆ«ÒÆÁ¿±ØÐëΪ¸Ã±äÁ¿µÄÀàÐÍËùÕ¼ÓõÄ×Ö½ÚÊýµÄ±¶Êý¡£
ÏÂÃæÁгö³£ÓÃÀàÐÍµÄ¶ÔÆë·½Ê½(vc6.0,32λϵͳ)¡£
ÀàÐÍ ¶ÔÆë·½Ê½£¨±äÁ¿´æ·ÅµÄÆðʼµØÖ·Ïà¶ÔÓڽṹµÄÆðʼµØÖ·µÄÆ«ÒÆÁ¿£©
Char Æ«ÒÆÁ¿±ØÐëΪsizeof(char)¼´1µÄ±¶Êý
Short Æ«ÒÆÁ¿±ØÐëΪsizeof(short)¼´2µÄ±¶Êý
int Æ«ÒÆÁ¿±ØÐëΪsizeof(int)¼´4µÄ±¶Êý
float Æ«ÒÆÁ¿±ØÐëΪsizeof(float)¼´4µÄ±¶Êý
double Æ«ÒÆÁ¿±ØÐëΪsizeof(double)¼´8µÄ±¶Êý
¸÷³ÉÔ±±äÁ¿ÔÚ´æ·ÅµÄʱºò¸ù¾ÝÔڽṹÖгöÏÖµÄ˳ÐòÒÀ´ÎÉêÇë¿Õ¼ä£¬Í¬Ê±°´ÕÕÉÏÃæµÄ¶ÔÆë·½Ê½µ÷ÕûλÖ㬿ÕȱµÄ×Ö½ÚVC»á×Ô¶¯Ìî³ä¡£
¢Ú ͬʱVCΪÁËÈ·±£½á¹¹µ
Ïà¹ØÎĵµ£º
constÓë#define×î´óµÄ²î±ð£¬ConstÔÚ¶ÑÕ»·ÖÅäÁ˿ռ䣬¶ø#defineÖ»ÊǰѾßÌåÊýÖµÖ±½Ó´«µÝµ½Ä¿±ê±äÁ¿°ÕÁË¡£»òÕß˵£¬constµÄ³£Á¿ÊÇÒ»¸öRun-TimeµÄ¸ÅÄËûÔÚ³ÌÐòÖÐȷȷʵʵµÄ´æÔÚ¿ÉÒÔ±»µ÷Óᢴ«µÝ¡£¶ø#define³£Á¿ÔòÊÇÒ»¸öCompile-Time¸ÅÄËüµÄÉúÃüÖÜÆÚÖ¹ÓÚ±àÒëÆÚ£ºÔÚʵ¼Ê³ÌÐòÖÐËûÖ»ÊÇÒ»¸ö³£Êý¡¢Ò»¸öÃüÁîÖе ......
BioscomʹÓÃ×¢Ò⣺´®¿Ú½ÓÏß·½Ê½Îª4£¬6£»7£¬8·Ö±ð¶Ì½Ó¡£½ö´Ëº¯ÊýÒªÇó¡£
·ñÔò»áÔì³ÉÖ»ÄܽÓÊÜÎÞ·¨·¢ËÍÊý¾Ý¡£º¯Êý·µ»ØÖµ´íÎó£¡
º¯ÊýÃû: bioscom
¹¦ ÄÜ: ²Ù×÷portÖ¸¶¨µÄRS232Ò첽ͨѶ¿Ú
ÓÃ ......
http://www.cnblogs.com/hoodlum1980/archive/2007/08/15/857067.html
Ìâ¸É£ºÊäÈëÁ½¸ö½Ï´óµÄÊý£¬Êä³öÏà³ËµÄ½á¹û¡£
Òâ˼Ҳ¾ÍÊÇÁ½¸öÊýºÜ´ó£¬³¬³öÁËintµÄ´æ´¢·¶Î§¡£
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define N 100
void GetDigits( ......
1.ÒýÑÔ
¡¡¡¡C++ÓïÑԵĴ´½¨³õÖÔÊÇ“a better C”£¬µ«ÊÇÕâ²¢²»Òâζ×ÅC++ÖÐÀàËÆCÓïÑÔµÄÈ«¾Ö±äÁ¿ºÍº¯ÊýËù²ÉÓõıàÒëºÍÁ¬½Ó·½Ê½ÓëCÓïÑÔÍêÈ«Ïàͬ¡£×÷ΪһÖÖÓûÓëC¼æÈݵÄÓïÑÔ£¬C++±£ÁôÁËÒ»²¿·Ö¹ý³ÌʽÓïÑÔµÄÌØµã£¨±»ÊÀÈ˳ÆÎª“²»³¹µ×µØÃæÏò¶ÔÏ󔣩£¬Òò¶øËü¿ÉÒÔ¶¨Òå²»ÊôÓÚÈκÎÀàµÄÈ«¾Ö±äÁ¿ºÍº¯Êý¡£µ«ÊÇ£¬C++±Ï¾ ......