C 學習筆記 一些奇特的語法和指令

2022-05-14 13:36:05 字數 1304 閱讀 3585

c++中有一些系統的語法和一些特有的指令,挺可愛的,想記下來。

1. 逗號的方便用法

逗號在c++中表示,下面**中第一行的用法大家應該很熟悉,a和b可以並列寫是將a,b定義成了同一型別。而第二行的用法便很少見了。居然可以在賦值中用逗號隔開兩個同型別的變數的賦值語句。崇拜下。

int a = 0, b = 0

;a = 10, b = 10

;std::cout

<"

"<2. 使用組合語言

3. 讀取cpu時間戳**---

在pentium以上的cpu提供了一條機器指令:rdtsc(read time stamp counter)。可以用這條指令來讀取cpu上的時間戳。

4. 指定內建型別的位數

如果你用的只是小額數字,那麼計算機給的那些位自然是沒有用了,怎麼樣來處理呢?可以用乙個方法:在struct內指定內建型別的位數。如下面例子所示,便是構造了乙個字的資料,其中前四位給了int b,後四位給了char a。有點吃大鍋飯的感覺。

以前固定的char是1個位元組,int是乙個字,long是乙個通用暫存器,double是兩個字背得很幸苦吧~原來內建型別也可以被指定位數的,不過當然要在struct結構裡!格式如下所示:

struct

;

既然可以這麼指定,那麼在記憶體中是怎麼使用的呢?我們輸出看看(使用union可以輸出,因為int i和struct的型別共用記憶體):

void

main()

bit;

inti;

} data;

data.i = 0

; data.bit.a = 1

; data.bit.b = 2;

data.bit.c = 3;

printf(

"0x%04x\n

",data.i );

}

結果:0x0321

即四個位元組4bits給了a,4bits給了b,4bits給了c:0000 0011

0010

0001 (紅色為a,綠色為b,藍色為c)。

當然其記憶體的分配也不是完全依照值的大小從後往前排的,如:

struct

bit;

結果:0x0309

即: 0000 0011

0000 10

01 (紅色為a,綠色為b,藍色為c)。也就是說記憶體的配置還是根據現在的位元組進行優化的。

C和C 的一些語法區別

struct 在c語言中,試用定義的struct型別的變數方式 struct 定義的變數 生成的變數 在c 語言中,試用定義的struct型別的變數方式 struct 定義的變數 生成的變數 或者 定義的變數 生成的變數 在c語言中struct定義的變數中不能有函式,而在c 中可以有函式。函式的引數...

table中的一些奇特標籤

caption 標題 zhouxiaoliang colgroup用於對 中的列進行組合,以便對其進行格式化。123123 123123 1212 tbody 元素應該與 標籤 href rel noopener thead 和 標籤 href rel noopener tfoot 元素結合起來使用...

學習C的一些筆記(一)

總結下很早以前的筆記,溫故而知新。printf 2d 2d 3d index i 1,index j 1,index i 1 index j 1 在輸入一長串數,但需要單個讀入的時候,就需要指定寬度 即 1d 如身份證系統scanf 1d a i 其中 代表左對齊,2,3代表顯示幾個字元,不足,用空...