date: 2019-3-8
前言本系列為重讀c/c++ primer技術書的讀書筆記。
1、關於記憶體對齊
#define assert_noterurn(a) \
dowhile(0)
#define mem_align 16
void
align_free
(void
*ptr)
}void
*align_malloc
(size_t size)
diff =((
~(int)ptr)
&(mem_align -1)
)+1;
//記憶體起始位址對齊需要偏移的位元組數
ptr =
(char
*)ptr + diff;
//偏移到記憶體對齊的位置((
char
*)ptr)][
-1]=
(char
)diff;if(
!ptr &&
!size)
return ptr;
}
(2)棧的記憶體對齊:
int a[50]
;__declspec
(align(16
))int a[50]
;
注意:不同平台下對齊聲明的方式可能不同。
C程式設計系列 之朝花夕拾 1 基礎知識
date 2019 3 8 前言本系列為重讀c c primer技術書的讀書筆記。1 關於記憶體對齊 define assert noterurn a dowhile 0 define mem align 16 void align free void ptr void align malloc s...
C 基礎知識系列之 for迴圈
c 的for迴圈提供的迭代迴圈機制是在執行下一次迭代前,測試是否滿足某個條件,其語法如下 for initializer,condition,iterator statement s 其中 initializer是指在執行第一次迭代前要計算的表示式 通常把乙個區域性變數初始化為迴圈計數器 condi...
C 基礎知識系列之 for迴圈
c 的for迴圈提供的迭代迴圈機制是在執行下一次迭代前,測試是否滿足某個條件,其語法如下 for initializer,condition,iterator statement s 其中 initializer 是指在執行第一次迭代前要計算的表示式 通常把乙個區域性變數初始化為迴圈計數器 cond...