锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 2錛庝竴涓被鎷瘋礉鐨勫嚱鏁幫紝瑕佹眰鐢–鍐?br />渚嬪錛?br />class A { class B { int main() {
鏉ヨ嚜:bookread
姝や功鏋跺287浜洪噷鐨?span id=pp>208浜烘湁鐢?

C紼嬪簭璁捐鏁欑▼
錛堢編錛塇.M.Deitel絳夎憲 钖涗竾楣忕瓑璇?/ 2000騫?鏈?/ 鏈烘宸ヤ笟鍑虹増紺?/ 33鍏?/ 787*1092 1/16 /

C闄烽槺涓庣己闄?/a>
Andrew Koenig钁?楂樺穽璇?/ 2002騫?1鏈?/ 浜烘皯閭數鍑虹増紺?/ 30鍏?/ 720*980 1/16 /

C璇█鎺ュ彛涓庡疄鐜扳斺斿垱寤哄彲閲嶇敤杞歡鐨勬妧鏈?/a>
[緹嶿姹夋. 钁楋紝鍌呰搲絳?璇?/ 01 1 2004 12:00AM / 鏈烘宸ヤ笟鍑虹増紺?/ 35鍏?/ 787*1092 1/16 /

C璇█鍙傝冩墜鍐岋紙鍘熶功絎?鐗堬級
錛堢編錛塖amuel P.Harbison III/Guy L.Steele Jr.钁?閭變徊娼樼瓑璇?/ 2003騫?鏈?/ 鏈烘宸ヤ笟鍑虹増紺?/ 39鍏?/ 787*1092 1/16 /

C璇█鍙傝冩墜鍐岋紙絎簲鐗堬級錛堣嫳鏂囩増錛?/a>
鍝堟瘮媯紝鏂拏灝?钁?/ 06 1 2003 12:00AM / 浜烘皯閭數鍑虹増紺?/ 45鍏?/ 16寮 /

C涓撳緙栫▼
Peter Van Der Linden钁?寰愭嘗璇?/ 2002騫?2鏈?/ 浜烘皯閭數鍑虹増紺?/ 40鍏?/ 800*1000 1/16 /

C紼嬪簭璁捐璇█錛堢2鐗?#183;鏂扮増錛変範棰樿В絳?/a>
[緹嶿姹ゆ湹錛孾緹嶿鍚夌背鎷滃皵 钁楋紝鏉ㄦ稕絳?璇?/ 01 1 2004 12:00AM / 鏈烘宸ヤ笟鍑虹増紺?/ 15鍏?/ 787*1092 1/16 /

C紼嬪簭璁捐璇█(絎?鐗?#183;鏂扮増)
錛堢編錛夊厠灝兼眽錛岋紙緹庯級閲屽 钁楋紝寰愬疂鏂囷紝鏉庡織 璇?/ 01 1 2004 12:00AM / 鏈烘宸ヤ笟鍑虹増紺?/ 30鍏?/ 787*1092 1/16 /

C紼嬪簭璁捐璇█絎簩鐗堜範棰樿В絳旓紙絎簩鐗?錛堣嫳鏂囧獎鍗扮増錛?/a>
Clovis L.Tondo,Scott E.Gimpel / 2000-3-1 / 娓呭崕澶у鍑虹増紺?/ 12鍏?/

C紼嬪簭璁捐璇█
Brian W.Kernighan / 1997騫?鏈?/ 娓呭崕澶у鍑虹増紺?/ 0鍏?/ 850*1168 1/32 /
]]>
http://blog.csdn.net/ruibird/archive/2007/03/31/1547882.aspx
]]>
http://www.vckbase.com/document/viewdoc/?id=957
]]>
{
聽 聽聽 聽聽聽int a,b;
聽 聽聽 聽聽聽int i;
聽 聽聽 聽聽聽a=b=1;
聽 聽聽 聽聽聽for(i=1;i<100;i++)
聽 聽聽 聽聽聽{
聽 聽聽 聽聽 聽聽 聽聽 聽 printf("%4d%4d",a,b);
聽 聽聽 聽聽 聽聽 聽聽 聽 a+=b;
聽 聽聽 聽聽 聽聽 聽聽 聽 b+=a;
聽 聽聽 聽聽聽}
聽 聽聽 聽聽聽printf("\n");
}
]]>
聽 #include 聽 <conio.h> 聽
聽 #include 聽 <stdarg.h> 聽
聽 #include 聽 <stdio.h> 聽
聽 #include 聽 <stdlib.h> 聽
聽 #include 聽 "winsock.h" 聽
聽 #include 聽 "mysql.h" 聽
聽 聽
聽 MYSQL 聽 聽 聽 聽 聽 *mysql 聽 = 聽 NULL; 聽
聽 聽
聽 void 聽 MySQLError(void) 聽
聽 { 聽
聽 fprintf(stderr, 聽 "%s\n", 聽 mysql_error(mysql)); 聽
聽 exit(1); 聽
聽 } 聽
聽 聽
聽 void 聽 ExecuteSQL(char 聽 *fmt, 聽 ...) 聽
聽 { 聽
聽 char 聽 SQL[1000] 聽 = 聽 {0}; 聽
聽 int 聽 聽 retval; 聽
聽 va_list 聽 args; 聽
聽 va_start(args, 聽 fmt); 聽
聽 if 聽 (_vsnprintf(SQL, 聽 sizeof(SQL)-1, 聽 fmt, 聽 args) 聽 < 聽 0) 聽
聽 { 聽
聽 fprintf(stderr, 聽 "SQL 聽 query 聽 truncated! 聽 Increase 聽 SQL 聽 buffer 聽 size 聽 in 聽 ExecuteSQL\n"); 聽
聽 exit(1); 聽
聽 } 聽
聽 va_end(args); 聽
聽 retval 聽 = 聽 mysql_query(mysql, 聽 SQL); 聽
聽 if 聽 (retval) 聽
聽 { 聽
聽 fprintf(stderr, 聽 "Original 聽 SQL 聽 Statement: 聽 %s\n", 聽 SQL); 聽
聽 fprintf(stderr, 聽 "%s\n", 聽 mysql_error(mysql)); 聽
聽 exit(2); 聽
聽 } 聽
聽 } 聽
聽 聽
聽 int 聽 main() 聽
聽 { 聽
聽 UINT 聽 聽 聽 聽 聽 聽 聽 聽 聽 i; 聽
聽 UINT 聽 聽 聽 聽 聽 聽 聽 聽 聽 FieldCount; 聽
聽 MYSQL_RES 聽 聽 聽 *res 聽 聽 聽 聽 聽 聽 聽 聽 聽 = 聽 NULL; 聽
聽 MYSQL_ROW 聽 聽 聽 聽 row 聽 聽 聽 聽 聽 聽 聽 聽 聽 = 聽 NULL; 聽
聽 MYSQL_FIELD 聽 *field; 聽
聽 聽
聽 char 聽 聽 聽 聽 聽 聽 *DBName 聽 聽 聽 聽 聽 聽 = 聽 "Test"; 聽
聽 char 聽 聽 聽 聽 聽 聽 *TableName 聽 聽 聽 = 聽 "People"; 聽
聽 char 聽 聽 聽 聽 聽 聽 *CreateDB 聽 聽 聽 聽 = 聽 "CREATE 聽 DATABASE 聽 IF 聽 NOT 聽 EXISTS 聽 %s"; 聽
聽 char 聽 聽 聽 聽 聽 聽 *DropTable 聽 聽 聽 = 聽 "DROP 聽 TABLE 聽 IF 聽 EXISTS 聽 %s"; 聽
聽 char 聽 聽 聽 聽 聽 聽 *CreateTable 聽 = 聽 "CREATE 聽 TABLE 聽 IF 聽 NOT 聽 EXISTS 聽 %s 聽 (\n" 聽
聽 聽 "ID 聽 聽 聽 聽 聽 聽 聽 聽 聽 INT 聽 UNSIGNED 聽 AUTO_INCREMENT, 聽 \n" 聽
聽 聽 "FirstName 聽 聽 VARCHAR(32), 聽 \n" 聽
聽 聽 "MiddleName 聽 VARCHAR(32), 聽 \n" 聽
聽 聽 "LastName 聽 聽 聽 VARCHAR(32), 聽 \n" 聽
聽 聽 "Address1 聽 聽 聽 VARCHAR(50), 聽 \n" 聽
聽 聽 "Address2 聽 聽 聽 VARCHAR(50), 聽 \n" 聽
聽 聽 "City 聽 聽 聽 聽 聽 聽 聽 VARCHAR(50), 聽 \n" 聽
聽 聽 "State 聽 聽 聽 聽 聽 聽 VARCHAR(2), 聽 \n" 聽
聽 聽 "Zip 聽 聽 聽 聽 聽 聽 聽 聽 VARCHAR(5), 聽 \n" 聽
聽 聽 "Email 聽 聽 聽 聽 聽 聽 VARCHAR(50), 聽 \n" 聽
聽 聽 "Gender 聽 聽 聽 聽 聽 VARCHAR(1), 聽 \n" 聽
聽 聽 "WorkPhone 聽 聽 VARCHAR(50), 聽 \n" 聽
聽 聽 "HomePhone 聽 聽 VARCHAR(50), 聽 \n" 聽
聽 聽 "CellPhone 聽 聽 VARCHAR(50), 聽 \n" 聽
聽 聽 "BirthDate 聽 聽 DATE 聽 NULL, 聽 \n" 聽
聽 聽 "Primary 聽 Key 聽 (ID) 聽 \n" 聽
聽 聽 ")\n"; 聽
聽 char 聽 聽 聽 聽 聽 聽 *AddRecord 聽 聽 聽 = 聽 "INSERT 聽 INTO 聽 %s 聽 (FirstName, 聽 LastName) 聽 VALUES 聽 ('FirstName 聽 %03d', 聽 'LastName 聽 %03d')"; 聽
聽 char 聽 聽 聽 聽 聽 聽 *GetRecords 聽 聽 = 聽 "SELECT 聽 ID, 聽 FirstName, 聽 LastName 聽 FROM 聽 %s"; 聽
聽 聽
聽 聽
聽 聽
聽 // 聽 Initialize 聽 MySQL 聽
聽 mysql 聽 = 聽 mysql_init(NULL); 聽
聽 聽
聽 // 聽 Connect 聽 to 聽 MySQL 聽
聽 if 聽 (!(mysql_real_connect(mysql, 聽 "localhost", 聽 "admin", 聽 "", 聽 NULL, 聽 mysql->port, 聽 0, 聽 0))) 聽 聽
聽 MySQLError(); 聽
聽 聽
聽 // 聽 Create 聽 database 聽
聽 ExecuteSQL(CreateDB, 聽 DBName); 聽
聽 聽
聽 // 聽 Connect 聽 to 聽 temporary 聽 database 聽
聽 if 聽 (mysql_select_db(mysql, 聽 DBName)) 聽
聽 MySQLError(); 聽
聽 聽
聽 // 聽 Delete 聽 table 聽 if 聽 it 聽 already 聽 exists. 聽
聽 ExecuteSQL(DropTable, 聽 TableName); 聽
聽 聽
聽 // 聽 Create 聽 table 聽
聽 ExecuteSQL(CreateTable, 聽 TableName); 聽
聽 聽
聽 // 聽 Insert 聽 some 聽 data 聽 into 聽 the 聽 table. 聽
聽 for 聽 (i 聽 = 聽 0; 聽 i 聽 < 聽 200; 聽 i++) 聽
聽 ExecuteSQL(AddRecord, 聽 TableName, 聽 i, 聽 i); 聽
聽 聽
聽 // 聽 Execute 聽 query 聽
聽 ExecuteSQL(GetRecords, 聽 TableName); 聽
聽 聽
聽 // 聽 Store 聽 the 聽 recordset 聽
聽 if 聽 ((res 聽 = 聽 mysql_store_result(mysql)) 聽 == 聽 NULL) 聽
聽 MySQLError(); 聽
聽 聽
聽 // 聽 Print 聽 the 聽 recordset 聽
聽 printf("Table 聽 %s\n", 聽 TableName); 聽
聽 while((field 聽 = 聽 mysql_fetch_field(res)) 聽 != 聽 NULL) 聽
聽 printf("%s\t", 聽 field->name); 聽
聽 printf("\n"); 聽
聽 FieldCount 聽 = 聽 mysql_num_fields(res); 聽
聽 while((row 聽 = 聽 mysql_fetch_row(res)) 聽 != 聽 NULL) 聽 聽
聽 { 聽
聽 for 聽 (i 聽 = 聽 0; 聽 i 聽 < 聽 FieldCount; 聽 i++) 聽 聽
聽 printf("%s\t", 聽 row[i]); 聽
聽 printf("\n"); 聽
聽 } 聽
聽 printf("\nTotal 聽 rows: 聽 %d\n", 聽 mysql_num_rows(res)); 聽
聽 聽
聽 // 聽 Free 聽 the 聽 recordset 聽
聽 mysql_free_result(res); 聽
聽 聽
聽 // 聽 Close 聽 the 聽 connection 聽
聽 mysql_close(mysql); 聽
聽 聽
聽 printf("\nPrint 聽 any 聽 key 聽 to 聽 continue...\n"); 聽
聽 getche(); 聽
聽 } 聽
聽 聽
聽 濡傛灉鏈夐棶棰橈紝璇峰姞鍏ysql++.lib聽聽聽聽
鍦╒C閲岀殑toos->option->directories涓皢include澧炲姞涓涓猚:\mysql\include,灝唋ib澧炲姞涓涓猚:\mysql\lib,灝唋ibmysql.dll鍜宭ibmysql.lib鎷峰埌褰撳墠鐩綍涓嬶紝騫朵笖鎶妉ibmysql.lib澧炲姞鍒板伐紼嬩腑銆?br />2錛屄犅犅犅犅?寤虹珛涓庢湇鍔″櫒鐨勮繛鎺ャ?br />Include <mysql.h> //鍖呭惈澶存枃浠?br />MYSQL *conn錛?/瀹氫箟涓涓狹YSQL綾誨瀷緇撴瀯錛岃繖涓嚑涔庡湪鎵鏈夌殑鍚庨潰鐨勭紪紼嬩腑閮介渶瑕?br />MYSQL *mysql_init(MYSQL *conn);//濡傛灉conn=NULL錛岃繑鍥炰竴涓柊鍒嗛厤鐨勫彞鏌勭粨鏋勮繑鍥烇紝鍙嶄箣鍒欓噸鏂板垵濮嬪寲璇ョ粨鏋勶紝鍑虹幇閿欒鍒欒繑鍥濶ULL錛?br />MYSQL *mysql_real_connect(MYSQL * connection,const char *server_host,const char *sql_urs_name,const char *sql_password,const char *db_name,unsigned int port_number,const char *unix_socket_name,unsigned int flags);//榪炴帴MYSQL鏈嶅姟鍣紝閲岄潰鐨勫弬鏁板簲璇ュ緢娓呮浜嗭紝涓鑸琾ort_number鍜寀nix_socket_name鐨勫間負0鍜孨ULL銆備緥濡傦細
mysql_real_connect(conn_ptr,"localhost","sagely","secret","ra",0,NULL,0);
聽聽聽聽 void mysql_close(MYSQL *connection);鍏抽棴涓涓繛鎺ャ?br />3錛屄犅犅犅犅?鎵цSQL璇彞
mysql_select_db錛圡YSQL *connection,const char *db_name錛?閫夊畾鏌愪釜鏁版嵁搴撱?br />聽聽聽聽 int mysql_query(MYSQL *connection,const char *query)//浠栧皢鎵цquery璇彞錛岃繍琛屾垚鍔熷皢榪斿洖0錛屼緥濡俶ysql_query(conn_ptr, Create table cert_info(...),灝嗗垱寤轟竴涓悕涓篶ert_info鐨勮〃錛屽嚑涔庢墍鏈夌殑SQL璇彞閮借兘榪欎箞鎵ц銆傚懙鍛碉紝鏄笉鏄樉寰楀緢綆鍗曪紝浠栧氨鍜屽懡浠よ涓緭鍏ョ殑SQL璇彞宸笉澶氥傚湪浣跨敤涓婇潰鍑芥暟鐨勬椂鍊欎竴鑸細浣跨敤
聽聽聽聽 my_ulonglong mysql_affected_rows(MYSQL *connection)錛岃繖涓嚱鏁拌繑鍥炵殑鏄痬ysql_query瀵硅繘琛屾敼鍔ㄧ殑琛岀殑鏁伴噺銆?br />4錛屄犅犅犅犅?澶勭悊媯绱㈠埌鐨勬暟鎹?br />褰撴垜浠彲浠ユ墽琛孲QL璇彞浠ュ悗錛岄偅涔堝氨寰堝鏄撴墽琛屽鍔犲垹闄や慨鏀圭瓑鎿嶄綔錛屼絾鏄亣鑻ユ绱㈠嚭鏉ョ殑鏁版嵁瀛樺偍鍦ㄥ摢閲屽憿錛?br />聽聽聽聽 MYSQL_RES *mysql_use_result(MYSQL *connection)榪欎釜鍑芥暟寰楀埌涓涓繛鎺ュ璞¤繑鍥炰竴涓粨鏋滈泦鍚堟寚閽堬紝鍑洪敊鏃惰繑鍥濶ULL銆備笉榪囦粬鍙槸榪斿洖涓涓泦鍚堝璞″垵濮嬪寲鏉ユ帴鏀舵暟鎹紝騫舵病鏈夊皢浠諱綍媯绱㈠埌鐨勬暟鎹繑鍥炲埌緇撴灉闆嗗悎涓?br />聽聽聽聽 MYSQL_ROW mysql_fetch_row(MYSQL_RES *result)榪欎釜鍑芥暟鑾峰緱mysql_use_resul寰楀埌鐨勭粨鏋滅粨鏋勪綋錛屽茍浠庝腑媯绱㈠崟涓錛屽茍榪斿洖鍒嗛厤緇欒緇撴瀯浣撶殑鏁版嵁錛屾病鏈夋洿澶氭暟鎹垨鍑洪敊鏃訛紝榪斿洖NULL銆?br />聽聽聽聽 Unsigned int mysql_field_count(MYSQL *connection)瀹冨緱鍒頒竴涓繛鎺ュ璞″茍榪斿洖鍦ㄩ泦鍚堜腑瀛楁鐨勬暟鐩?br />浜庢槸鏈変笂闈㈢殑鍩虹鎴戜滑灝卞彲浠ョ悊瑙d笅闈㈣繖孌典簡錛氾紙娌℃湁閿欒澶勭悊錛?br />mysql_init(&conn_ptr);
mysql_real_connect(conn_ptr,"localhost","sagely","secret","ra",0,NULL,0);
mysql_query(conn_ptr,"SELECT * form usr_info);
res_ptr=mysql_use_result(&conn_ptr);
sqlrow=mysql_fetch_row(res_ptr);
for(int i=0;i<mysql_field_count(&conn_ptr);i++){printf("%s ",sqlrow);}
聽聽聽聽 MYSQL_FIELD *mysql_fetch_field(MYSQL_RES *result)瀹冭繑鍥炵殑鏄垪鐨勪俊鎭紝姣斿鍒楃殑鍚嶇О錛屽垪鎵鍦ㄨ〃鍚嶇О絳夌瓑錛屾湁浜嗚繖涓氨鍙互灝嗗垪鏍囬涓庢暟鎹兂瀵瑰簲璧鋒潵浜嗐?br />
]]>
聽
鏈枃涓昏鍖呮嫭浜屼釜閮ㄥ垎錛岀涓閮ㄥ垎閲嶇偣浠嬬粛鍦╒C涓紝鎬庝箞鏍烽噰鐢╯izeof鏉ユ眰緇撴瀯鐨勫ぇ灝忥紝浠ュ強瀹規槗鍑虹幇鐨勯棶棰橈紝騫剁粰鍑鴻В鍐抽棶棰樼殑鏂規硶錛岀浜岄儴鍒嗘葷粨鍑篤C涓璼izeof鐨勪富瑕佺敤娉曘?br />
1銆?sizeof搴旂敤鍦ㄧ粨鏋勪笂鐨勬儏鍐?br />
璇風湅涓嬮潰鐨勭粨鏋勶細
struct MyStruct
{
double dda1;
char dda;
int type
};
瀵圭粨鏋凪yStruct閲囩敤sizeof浼氬嚭鐜頒粈涔堢粨鏋滃憿錛焥izeof(MyStruct)涓哄灝戝憿錛熶篃璁鎬綘浼氳繖鏍鋒眰錛?br />
sizeof(MyStruct)=sizeof(double)+sizeof(char)+sizeof(int)=13
浣嗘槸褰撳湪VC涓祴璇曚笂闈㈢粨鏋勭殑澶у皬鏃訛紝浣犱細鍙戠幇sizeof(MyStruct)涓?6銆備綘鐭ラ亾涓轟粈涔堝湪VC涓細寰楀嚭榪欐牱涓涓粨鏋滃悧錛?br />
鍏跺疄錛岃繖鏄疺C瀵瑰彉閲忓瓨鍌ㄧ殑涓涓壒孌婂鐞嗐備負浜嗘彁楂楥PU鐨勫瓨鍌ㄩ熷害錛孷C瀵逛竴浜涘彉閲忕殑璧峰鍦板潃鍋氫簡鈥滃榻愨濆鐞嗐傚湪榛樿鎯呭喌涓嬶紝VC瑙勫畾鍚勬垚鍛樺彉閲忓瓨鏀劇殑璧峰鍦板潃鐩稿浜庣粨鏋勭殑璧峰鍦板潃鐨勫亸縐婚噺蹇呴』涓鴻鍙橀噺鐨勭被鍨嬫墍鍗犵敤鐨勫瓧鑺傛暟鐨勫嶆暟銆備笅闈㈠垪鍑哄父鐢ㄧ被鍨嬬殑瀵歸綈鏂瑰紡(vc6.0,32浣嶇郴緇?銆?br />
綾誨瀷
瀵歸綈鏂瑰紡錛堝彉閲忓瓨鏀劇殑璧峰鍦板潃鐩稿浜庣粨鏋勭殑璧峰鍦板潃鐨勫亸縐婚噺錛?br />
Char
鍋忕Щ閲忓繀欏諱負sizeof(char)鍗?鐨勫嶆暟
int
鍋忕Щ閲忓繀欏諱負sizeof(int)鍗?鐨勫嶆暟
float
鍋忕Щ閲忓繀欏諱負sizeof(float)鍗?鐨勫嶆暟
double
鍋忕Щ閲忓繀欏諱負sizeof(double)鍗?鐨勫嶆暟
Short
鍋忕Щ閲忓繀欏諱負sizeof(short)鍗?鐨勫嶆暟
鍚勬垚鍛樺彉閲忓湪瀛樻斁鐨勬椂鍊欐牴鎹湪緇撴瀯涓嚭鐜扮殑欏哄簭渚濇鐢寵絀洪棿錛屽悓鏃舵寜鐓т笂闈㈢殑瀵歸綈鏂瑰紡璋冩暣浣嶇疆錛岀┖緙虹殑瀛楄妭VC浼氳嚜鍔ㄥ~鍏呫傚悓鏃禫C涓轟簡紜繚緇撴瀯鐨勫ぇ灝忎負緇撴瀯鐨勫瓧鑺傝竟鐣屾暟錛堝嵆璇ョ粨鏋勪腑鍗犵敤鏈澶х┖闂寸殑綾誨瀷鎵鍗犵敤鐨勫瓧鑺傛暟錛夌殑鍊嶆暟錛屾墍浠ュ湪涓烘渶鍚庝竴涓垚鍛樺彉閲忕敵璇風┖闂村悗錛岃繕浼氭牴鎹渶瑕佽嚜鍔ㄥ~鍏呯┖緙虹殑瀛楄妭銆?br />
涓嬮潰鐢ㄥ墠闈㈢殑渚嬪瓙鏉ヨ鏄嶸C鍒板簳鎬庝箞鏍鋒潵瀛樻斁緇撴瀯鐨勩?br />
struct MyStruct
{
double dda1;
char dda;
int type
}錛?br />
涓轟笂闈㈢殑緇撴瀯鍒嗛厤絀洪棿鐨勬椂鍊欙紝VC鏍規嵁鎴愬憳鍙橀噺鍑虹幇鐨勯『搴忓拰瀵歸綈鏂瑰紡錛屽厛涓虹涓涓垚鍛榙da1鍒嗛厤絀洪棿錛屽叾璧峰鍦板潃璺熺粨鏋勭殑璧峰鍦板潃鐩稿悓錛堝垰濂藉亸縐婚噺0鍒氬ソ涓簊izeof(double)鐨勫嶆暟錛夛紝璇ユ垚鍛樺彉閲忓崰鐢╯izeof(double)=8涓瓧鑺傦紱鎺ヤ笅鏉ヤ負絎簩涓垚鍛榙da鍒嗛厤絀洪棿錛岃繖鏃朵笅涓涓彲浠ュ垎閰嶇殑鍦板潃瀵逛簬緇撴瀯鐨勮搗濮嬪湴鍧鐨勫亸縐婚噺涓?錛屾槸sizeof(char)鐨勫嶆暟錛屾墍浠ユ妸dda瀛樻斁鍦ㄥ亸縐婚噺涓?鐨勫湴鏂規弧瓚沖榻愭柟寮忥紝璇ユ垚鍛樺彉閲忓崰鐢╯izeof(char)=1涓瓧鑺傦紱鎺ヤ笅鏉ヤ負絎笁涓垚鍛榯ype鍒嗛厤絀洪棿錛岃繖鏃朵笅涓涓彲浠ュ垎閰嶇殑鍦板潃瀵逛簬緇撴瀯鐨勮搗濮嬪湴鍧鐨勫亸縐婚噺涓?錛屼笉鏄痵izeof(int)=4鐨勫嶆暟錛屼負浜嗘弧瓚沖榻愭柟寮忓鍋忕Щ閲忕殑綰︽潫闂錛孷C鑷姩濉厖3涓瓧鑺傦紙榪欎笁涓瓧鑺傛病鏈夋斁浠涔堜笢瑗匡級錛岃繖鏃朵笅涓涓彲浠ュ垎閰嶇殑鍦板潃瀵逛簬緇撴瀯鐨勮搗濮嬪湴鍧鐨勫亸縐婚噺涓?2錛屽垰濂芥槸sizeof(int)=4鐨勫嶆暟錛屾墍浠ユ妸type瀛樻斁鍦ㄥ亸縐婚噺涓?2鐨勫湴鏂癸紝璇ユ垚鍛樺彉閲忓崰鐢╯izeof(int)=4涓瓧鑺傦紱榪欐椂鏁翠釜緇撴瀯鐨勬垚鍛樺彉閲忓凡緇忛兘鍒嗛厤浜嗙┖闂達紝鎬葷殑鍗犵敤鐨勭┖闂村ぇ灝忎負錛?+1+3+4=16錛屽垰濂戒負緇撴瀯鐨勫瓧鑺傝竟鐣屾暟錛堝嵆緇撴瀯涓崰鐢ㄦ渶澶х┖闂寸殑綾誨瀷鎵鍗犵敤鐨勫瓧鑺傛暟sizeof(double)=8錛夌殑鍊嶆暟錛屾墍浠ユ病鏈夌┖緙虹殑瀛楄妭闇瑕佸~鍏呫傛墍浠ユ暣涓粨鏋勭殑澶у皬涓猴細sizeof(MyStruct)=8+1+3+4=16錛屽叾涓湁3涓瓧鑺傛槸VC鑷姩濉厖鐨勶紝娌℃湁鏀句換浣曟湁鎰忎箟鐨勪笢瑗褲?br />
涓嬮潰鍐嶄婦涓緥瀛愶紝浜ゆ崲涓涓嬩笂闈㈢殑MyStruct鐨勬垚鍛樺彉閲忕殑浣嶇疆錛屼嬌瀹冨彉鎴愪笅闈㈢殑鎯呭喌錛?br />
struct MyStruct
{
char dda;
double dda1;
int type
}錛?br />
榪欎釜緇撴瀯鍗犵敤鐨勭┖闂翠負澶氬ぇ鍛紵鍦╒C6.0鐜涓嬶紝鍙互寰楀埌sizeof(MyStruc)涓?4銆傜粨鍚堜笂闈㈡彁鍒扮殑鍒嗛厤絀洪棿鐨勪竴浜涘師鍒欙紝鍒嗘瀽涓媀C鎬庝箞鏍蜂負涓婇潰鐨勭粨鏋勫垎閰嶇┖闂寸殑銆傦紙綆鍗曡鏄庯級
struct MyStruct
{
char dda;//鍋忕Щ閲忎負0錛屾弧瓚沖榻愭柟寮忥紝dda鍗犵敤1涓瓧鑺傦紱
double dda1;//涓嬩竴涓彲鐢ㄧ殑鍦板潃鐨勫亸縐婚噺涓?錛屼笉鏄痵izeof(double)=8
//鐨勫嶆暟錛岄渶瑕佽ˉ瓚?涓瓧鑺傛墠鑳戒嬌鍋忕Щ閲忓彉涓?錛堟弧瓚沖榻?br />
//鏂瑰紡錛夛紝鍥犳VC鑷姩濉厖7涓瓧鑺傦紝dda1瀛樻斁鍦ㄥ亸縐婚噺涓?
//鐨勫湴鍧涓婏紝瀹冨崰鐢?涓瓧鑺傘?br />
int type錛?/涓嬩竴涓彲鐢ㄧ殑鍦板潃鐨勫亸縐婚噺涓?6錛屾槸sizeof(int)=4鐨勫?br />
//鏁幫紝婊¤凍int鐨勫榻愭柟寮忥紝鎵浠ヤ笉闇瑕乂C鑷姩濉厖錛宼ype瀛?br />
//鏀懼湪鍋忕Щ閲忎負16鐨勫湴鍧涓婏紝瀹冨崰鐢?涓瓧鑺傘?br />
}錛?/鎵鏈夋垚鍛樺彉閲忛兘鍒嗛厤浜嗙┖闂達紝絀洪棿鎬葷殑澶у皬涓?+7+8+4=20錛屼笉鏄粨鏋?br />
//鐨勮妭杈圭晫鏁幫紙鍗崇粨鏋勪腑鍗犵敤鏈澶х┖闂寸殑綾誨瀷鎵鍗犵敤鐨勫瓧鑺傛暟sizeof
//(double)=8錛夌殑鍊嶆暟錛屾墍浠ラ渶瑕佸~鍏?涓瓧鑺傦紝浠ユ弧瓚崇粨鏋勭殑澶у皬涓?br />
//sizeof(double)=8鐨勫嶆暟銆?br />
鎵浠ヨ緇撴瀯鎬葷殑澶у皬涓猴細sizeof(MyStruc)涓?+7+8+4+4=24銆傚叾涓葷殑鏈?+4=11涓瓧鑺傛槸VC鑷姩濉厖鐨勶紝娌℃湁鏀句換浣曟湁鎰忎箟鐨勪笢瑗褲?br />
VC瀵圭粨鏋勭殑瀛樺偍鐨勭壒孌婂鐞嗙‘瀹炴彁楂楥PU瀛樺偍鍙橀噺鐨勯熷害錛屼絾鏄湁鏃跺欎篃甯︽潵浜嗕竴浜涢夯鐑︼紝鎴戜滑涔熷睆钄芥帀鍙橀噺榛樿鐨勫榻愭柟寮忥紝鑷繁鍙互璁懼畾鍙橀噺鐨勫榻愭柟寮忋?br />
VC涓彁渚涗簡#pragma pack(n)鏉ヨ瀹氬彉閲忎互n瀛楄妭瀵歸綈鏂瑰紡銆俷瀛楄妭瀵歸綈灝辨槸璇村彉閲忓瓨鏀劇殑璧峰鍦板潃鐨勫亸縐婚噺鏈変袱縐嶆儏鍐碉細絎竴銆佸鏋渘澶т簬絳変簬璇ュ彉閲忔墍鍗犵敤鐨勫瓧鑺傛暟錛岄偅涔堝亸縐婚噺蹇呴』婊¤凍榛樿鐨勫榻愭柟寮忥紝絎簩銆佸鏋渘灝忎簬璇ュ彉閲忕殑綾誨瀷鎵鍗犵敤鐨勫瓧鑺傛暟錛岄偅涔堝亸縐婚噺涓簄鐨勫嶆暟錛屼笉鐢ㄦ弧瓚抽粯璁ょ殑瀵歸綈鏂瑰紡銆傜粨鏋勭殑鎬誨ぇ灝忎篃鏈変釜綰︽潫鏉′歡錛屽垎涓嬮潰涓ょ鎯呭喌錛氬鏋渘澶т簬鎵鏈夋垚鍛樺彉閲忕被鍨嬫墍鍗犵敤鐨勫瓧鑺傛暟錛岄偅涔堢粨鏋勭殑鎬誨ぇ灝忓繀欏諱負鍗犵敤絀洪棿鏈澶х殑鍙橀噺鍗犵敤鐨勭┖闂存暟鐨勫嶆暟錛?br />
鍚﹀垯蹇呴』涓簄鐨勫嶆暟銆備笅闈婦渚嬭鏄庡叾鐢ㄦ硶銆?br />
#pragma pack(push) //淇濆瓨瀵歸綈鐘舵?br />
#pragma pack(4)//璁懼畾涓?瀛楄妭瀵歸綈
struct test
{
char m1;
double m4;
int m3;
};
#pragma pack(pop)//鎭㈠瀵歸綈鐘舵?br />
浠ヤ笂緇撴瀯鐨勫ぇ灝忎負16錛屼笅闈㈠垎鏋愬叾瀛樺偍鎯呭喌錛岄鍏堜負m1鍒嗛厤絀洪棿錛屽叾鍋忕Щ閲忎負0錛屾弧瓚蟲垜浠嚜宸辮瀹氱殑瀵歸綈鏂瑰紡錛?瀛楄妭瀵歸綈錛夛紝m1鍗犵敤1涓瓧鑺傘傛帴鐫寮濮嬩負m4鍒嗛厤絀洪棿錛岃繖鏃跺叾鍋忕Щ閲忎負1錛岄渶瑕佽ˉ瓚?涓瓧鑺傦紝榪欐牱浣垮亸縐婚噺婊¤凍涓簄=4鐨勫嶆暟錛堝洜涓簊izeof(double)澶т簬n錛?m4鍗犵敤8涓瓧鑺傘傛帴鐫涓簃3鍒嗛厤絀洪棿錛岃繖鏃跺叾鍋忕Щ閲忎負12錛屾弧瓚充負4鐨勫嶆暟錛宮3鍗犵敤4涓瓧鑺傘傝繖鏃跺凡緇忎負鎵鏈夋垚鍛樺彉閲忓垎閰嶄簡絀洪棿錛屽叡鍒嗛厤浜?6涓瓧鑺傦紝婊¤凍涓簄鐨勫嶆暟銆傚鏋滄妸涓婇潰鐨?pragma pack(4)鏀逛負#pragma pack(16)錛岄偅涔堟垜浠彲浠ュ緱鍒扮粨鏋勭殑澶у皬涓?4銆傦紙璇瘋鑰呰嚜宸卞垎鏋愶級
2銆?sizeof鐢ㄦ硶鎬葷粨
鍦╒C涓紝sizeof鏈夌潃璁稿鐨勭敤娉曪紝鑰屼笖寰堝鏄撳紩璧蜂竴浜涢敊璇備笅闈㈡牴鎹畇izeof鍚庨潰鐨勫弬鏁板sizeof鐨勭敤娉曞仛涓葷粨銆?br />
A錛?鍙傛暟涓烘暟鎹被鍨嬫垨鑰呬負涓鑸彉閲忋備緥濡俿izeof(int),sizeof(long)絳夌瓑銆傝繖縐嶆儏鍐佃娉ㄦ剰鐨勬槸涓嶅悓緋葷粺緋葷粺鎴栬呬笉鍚岀紪璇戝櫒寰楀埌鐨勭粨鏋滃彲鑳芥槸涓嶅悓鐨勩備緥濡俰nt綾誨瀷鍦?6浣嶇郴緇熶腑鍗?涓瓧鑺傦紝鍦?2浣嶇郴緇熶腑鍗?涓瓧鑺傘?br />
B錛?鍙傛暟涓烘暟緇勬垨鎸囬拡銆備笅闈婦渚嬭鏄?
int a[50]; //sizeof(a)=4*50=200; 姹傛暟緇勬墍鍗犵殑絀洪棿澶у皬
int *a=new int[50];// sizeof(a)=4; a涓轟竴涓寚閽堬紝sizeof(a)鏄眰鎸囬拡
//鐨勫ぇ灝?鍦?2浣嶇郴緇熶腑錛屽綋鐒舵槸鍗?涓瓧鑺傘?br />
C錛?鍙傛暟涓虹粨鏋勬垨綾匯係izeof搴旂敤鍦ㄧ被鍜岀粨鏋勭殑澶勭悊鎯呭喌鏄浉鍚岀殑銆備絾鏈変袱鐐歸渶瑕佹敞鎰忥紝絎竴銆佺粨鏋勬垨鑰呯被涓殑闈欐佹垚鍛樹笉瀵圭粨鏋勬垨鑰呯被鐨勫ぇ灝忎駭鐢熷獎鍝嶏紝鍥犱負闈欐佸彉閲忕殑瀛樺偍浣嶇疆涓庣粨鏋勬垨鑰呯被鐨勫疄渚嬪湴鍧鏃犲叧銆?br />
絎簩銆佹病鏈夋垚鍛樺彉閲忕殑緇撴瀯鎴栫被鐨勫ぇ灝忎負1錛屽洜涓哄繀欏諱繚璇佺粨鏋勬垨綾葷殑姣忎竴
涓疄渚嬪湪鍐呭瓨涓兘鏈夊敮涓鐨勫湴鍧銆?br />
涓嬮潰涓句緥璇存槑錛?br />
Class Test{int a;static double c};//sizeof(Test)=4.
Test *s;//sizeof(s)=4,s涓轟竴涓寚閽堛?br />
Class test1{ };//sizeof(test1)=1;
D錛?鍙傛暟涓哄叾浠栥備笅闈婦渚嬭鏄庛?br />
int func(char s[5]);
{
cout<
//鏁扮殑鍙傛暟鍦ㄤ紶閫掔殑鏃跺欑郴緇熷鐞嗕負涓涓寚閽堬紝鎵
//浠izeof(s)瀹為檯涓婁負姹傛寚閽堢殑澶у皬銆?br />
return 1;
}
sizeof(func(鈥?234鈥?)=4//鍥犱負func鐨勮繑鍥炵被鍨嬩負int錛屾墍浠ョ浉褰撲簬
//姹俿izeof(int).
浠ヤ笂涓簊izeof鐨勫熀鏈敤娉曪紝鍦ㄥ疄闄呯殑浣跨敤涓娉ㄦ剰鍒嗘瀽VC鐨勫垎閰嶅彉閲忕殑鍒嗛厤絳栫暐錛岃繖鏍風殑璇濆彲浠ラ伩鍏嶄竴浜涢敊璇?br />
]]>
int a;
public:
int b;
};
鈥︹?br />鈥︹?br />};
A aa, bb;
B c, d;
a.a = 10; a.b = 20;
copyclass(???);// 灝哸a鎷瘋礉鍒癰b
鈥?
copyclass(???);// 灝哻鎷瘋礉鍒癲
return 0;
}
3鍦ㄤ竴涓」鐩腑錛屼綘琚垎閰嶅埌涓涓皬浠誨姟錛氬湪涓涓瓧絎︿覆str涓寘鍚瓧絎︿覆str_a錛屾壘鍑烘墍鏈夊湪瀛楃涓瞫tr涓殑str_a錛岃姹備綘鏋舵瀯榪欎釜鍔熻兘鍧楀茍涓旂粰鍑轟嬌鐢ㄨ鏄庯紝浠g爜榪愯鍋ュ.騫朵笖鎬ц兘涓洪瑕併?br />
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1銆亀hile(*a++=*b++);
2銆乵emcpy(&bb, &aa, sizeof(A));
memcpy(&d, &c, sizeof(B));
3銆丅OOL FindString(const char *src錛?const char *str_a)
{
聽聽 char *pStart=(char *)src;
聽聽 if(NULL==pStart || NULL==str_a) return FALSE;
聽聽 char *pCursor=pStart;
聽聽 while(pCursor=strstr(pCursor, str_a))
聽 {
聽聽聽聽 printf("find (%s) at position %ld\r\n"), str_a, pCursor-pStart);聽聽
聽 }
聽 return TRUE;聽
}
]]>
{
/* 鑻ヤ覆 S 涓粠絎?/span> pos(S 鐨勪笅鏍?/span> 0 鈮?/span> pos<StrLength(S)) 涓瓧絎?/span>
璧峰瓨鍦ㄥ拰涓?/span> T 鐩稿悓鐨勫瓙涓詫紝鍒欑О鍖歸厤鎴愬姛錛岃繑鍥炵涓涓?/span>
榪欐牱鐨勫瓙涓插湪涓?/span> S 涓殑涓嬫爣錛屽惁鍒欒繑鍥?/span> -1聽聽聽 */
int i = pos, j = 0;
while ( S[i+j] != '\0'&& T[j] != '\0')
if ( S[i+j] == T[j] )
j ++; // 緇х畫姣旇緝鍚庝竴瀛楃
else
{
i ++; j = 0;
//
閲嶆柊寮濮嬫柊鐨勪竴杞尮閰?/span>
}
if ( T[j] == '\0')
return i; // 鍖歸厤鎴愬姛 聽聽 榪斿洖涓嬫爣
else
return -1; // 涓?/span> S 涓?/span> ( 絎?/span> pos 涓瓧絎﹁搗 ) 涓嶅瓨鍦ㄥ拰涓?/span> T 鐩稿悓鐨勫瓙涓?/span>
}
// Index_BF
鍋剁劧鍙戠幇鐨勪竴涓湁鐢ㄧ殑windows api SetROP2(int nDrawMode)錛岀幇鍦ㄥ皢鎴戝璇pi鐨勪嬌鐢ㄧ殑蹇冨緱褰掔撼濡備笅錛?/p>
璇ュ嚱鏁扮殑涓昏鐨勪綔鐢ㄦ槸鏍規嵁nDrawMode璁劇疆鐨勬柟寮忛噸鏂拌瀹氱粯鍥劇殑鏂瑰紡錛屼笅闈㈠氨涓嶅悓鐨刵DrawMode鍊煎叿浣撹В閲婄粯鍥炬ā寮忔槸濡備綍鏀瑰彉鐨勩?/p>
棣栧厛灝眓DrawMode鐨勫彇鍊兼湁浠ヤ笅鐨勬儏鍐碉細
/////////////////////////////////////////////////////////////////////////////////example/////////////////////////////////////////////////////////////////////////
聽聽ClientDC.SetROP2(R2_NOT);
聽聽ClientDC.MoveTo(m_PointOrigin);
聽聽ClientDC.LineTo(m_PointOld);
聽聽ClientDC.MoveTo(m_PointOrigin);
聽聽ClientDC.LineTo(point);
聽聽m_PointOld = point;
聽聽CView::OnMouseMove(nFlags, point);
///////////////////////////////////////////////////////////////////////////////////////end/////////////////////////////////////////////////////////////////////////
鎬諱箣錛屼笂榪癮pi鐨勪竴涓綔鐢ㄦ槸鍦ㄩ渶瑕佹敼鍙樼粯鍥劇殑妯″紡鏃訛紝涓嶉渶瑕侀噸鏂拌緗敾絎旓紝鍙渶瑕佽緗笉鍚岀殑緇樺浘鐨勬ā寮忓嵆鍙揪鍒扮浉搴旂殑鐩殑銆?/p>
struct a
{
聽int b;
};
struct b
{
聽聽聽 int a;
};
void main()
{
聽a A;
聽A.b = NULL;
聽A.b = 1;
聽
聽b a;
聽a.a = 3;
}
鍦–鐨勭幆澧冧笅錛屼細鎶ラ敊錛屽湪C++鐨勬儏鍐碉紝榪欐牱鐨勬搷浣滃氨鏄厑璁哥殑銆?br />鍦–++鐨勭紪璇戝櫒涓紝鍏佽灝嗙粨鏋勪綋鍚嶄綔涓轟竴涓彉閲忓悕鏉ュ寰呫?/p>