C程式設計系列 之朝花夕拾 1 基礎知識

2022-03-24 02:03:36 字數 760 閱讀 5110

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...