C語言難點專題 預定義

2021-08-25 00:21:47 字數 591 閱讀 6995

c 語言型別定義粗略分為兩塊: 第一: 符號替換型別(#define) , 第二: 型別替換(#typedef)

第一種致命**是無所不能的代替作用, 這裡是裸替, 直接替換,比如章子怡同學不願被剝光, 就請邵小珊同學裸替一下,技術含量相當不高, 乙個肉身替換為另乙個肉身。

#include #define globalvalue 100 #define printdebug printf("x is / %d/n",x) int main() int x = 10; printdebug; return 0; }

上面的兩個例子, 只不過告訴各位: 這是赤裸裸的**替換, 實在是沒什麼好講的。

第二種比較有殺傷力的**出現, 能傳遞部分值的替換

#include #define multi(x, y) x * y int main()

注意上面得到的結果是不同的,原因是, 依然是裸替,雖然允許部分傳參, 但形勢跟之前還是沒有任何區別。

為了防止穿幫,裸替的物件需要加括號:

#define multi(x, y) (x) * (y)

1. 預定義乙個基本型別

2. 預定義乙個函式型別

後續補充

C語言預定義巨集

作用 對於 file line func 這樣的巨集,在除錯程式時是很有用的,因為你可以很容易的知道程式執行到了哪個檔案的那一行,是哪個函式。下面乙個例子是列印上面這些預定義的巨集的。date file line time function c標準中指定了一些預定義的巨集,對於程式設計經常會用到。下...

C語言難點專題 陣列和指標

陣列和指標是c中常見的資料結構,和基本型別不同,這兩個資料結構可以表示多個資料的集合。在理解和區分這兩個概念前,先了解一下記憶體模型。記憶體就相當於街道兩邊的房子,記憶體位址,就是房子的門牌號。記憶體和房子一樣,可以存放需要的資料。現在問題就來了,怎麼描述一排排的房子 記憶體資料 呢?這裡有兩個方案...

C語言預定義巨集( LINE DATE

ansic標準定義了以下5種可供c語言使用的預定義巨集 line 在源 中插入當前源 行號 file 在源 中插入當前源 檔名 date 在源 中插入當前編譯日期 注意和當前系統日期區別開來 time 在源 中插入當前編譯時間 注意和當前系統時間區別開來 stdc 當要求程式嚴格遵循ansic標準時...