僞指令#pragma pack(n) 這個指令用於告訴編譯器,程序裏面的結構體按到n個字節對齊。
#pragma pack()取消自定義的字節對齊。
class和struct的比較:
stA s = {1,'h'};合法,但是如果是class的話,不能這麼做。
extern "c" 解析:
extern表示函數和變量的作用範圍,表示可以在本模塊或者其它模塊使用。與它相反的是static表示只能在本模塊裏使用。
extern int a;表示聲明一個變量,並沒有爲這個變量分配內存。
如果要在c++環境下調用c編譯的函數,需要在c++頭文件中引用c的頭文件。
extern "c"
{
#include "cHeader.h" ,這樣的話,在c++需找c的函數時,就是按照c編譯器編譯的形式,就可以找到,如果沒有這樣做的話,就是 按照 c++編譯器規定的形式調用,例如調用這個函數foo(int,int),在c++中就是尋找foo_int_int,c 中就是尋找foo()。
} 注意:在c頭文件中,對其外部提供函數,加上extern