正確操作:
錯誤操作:編譯時報錯
double rate = ;const
double locked = ;
const
double *pc = rate; /*
可以*/
pc = locked; /*
可以*/
constdouble locked = ;
double *pc = locked; /*
不可以*/
/** 1、str1、str2、str5都指向了同乙個字串位址;
* 2、str3陣列有自己單獨的位址空間;
* 3、str4陣列在執行時為其分配空間並賦值,是靜態儲存區字串的副本;
* 4、格式化輸入輸出相同的字串也只有乙份;
*/#include
#define str1 "i am a student."
#define str2 "i am a student."
char str3 = "
i am a student.";
int main(void
)輸出結果:
0x1055c
0x1055c
0x21028
0x7eaeb1b4
0x1055c
the string size is:16
the string size is:16
the string size is:16
/*總結:關於位元組對齊的兩條原則部分資料段彙編**
*/str3:
.ascii
"i am a student.\000
".section .rodata
.align
2.lc0:
.ascii
"i am a student.\000
".align
2.lc1:
.ascii
"%p\012\000
".align
2.lc2:
.ascii
"the string size is:%u\012\000
".align
2.lc3:
.ascii
"the string size is:%d\012\000
"
#pragma pack(n)例如,在linux 64位系統中,half占用6位元組,long占用8位元組,結構體testunion的大小為8位元組。成員half的對齊寬度為2,大小為6。d的對齊寬度為8。原則一: 成員對齊,每個成員的偏移值必須是x的倍數,x = min(n, 該成員對齊寬度)
原則二: 結構體對齊,結構的總大小必須為y的倍數,y = min(n, 成員的最大對齊寬度)
程式設計原則 C 語言 持續更新
在使用c語言的過程中,經常會有許多意想不到的體會,所以在這裡想把他們都記錄下來 1.結構體賦值 typedef struct demo struct 對於如上的乙個結構體型別,通常賦初值的做法是 demo struct inst 1 危險 當結構體的成員有改變時,此行 就會變得危險 demo str...
C語言錯誤集 持續更新
錯誤 嚴重性 說明 專案 檔案 行 禁止顯示狀態 錯誤 lnk2005 main 已經在 01.obj 中定義 01 c users shy desktop xx 01 01 02.obj 1 原因 同乙個檔案中包含了兩個main 函式 警告 warning c4047 初始化 int 與 int ...
學習分享 C 語言(持續更新)
2 變數名 引用 指標 3 內聯函式inline 4 類5 封裝 6 繼承 7 多型 7.2 子型別多型 執行 7.3 引數多型 編譯 7.4 強制多型 編譯 執行 參考c 物件導向 我.吃 飯 c面向過程 吃 我,飯 1 常指標 const p 2 指向常量的指標 const p 3 指向常量的引...