20160726IOS_C

1、#define中使用參數(shù)
(1)#define SQUARE(X) XX
(2)#define PR(X) printf("The result is %d.\n", X)
(3)##運算符:#define XNAME(n) x##n; XNAME(4)= x4
(4)可變宏:... _ _ VA_ARGS_ _ #define PR(...) printf(_ _ VA_ARGS_ _)
2、#include 指令
(1)兩種形式: #include <stdio.h> #include "mystuff.h"
(2)尖括號告訴預處理器在一個或多個標準系統(tǒng)目錄中尋找文件,雙引號告訴預處理器先在當前目錄(或文件名中指定的其他目錄)中尋找文件,然后在標準位置尋找文件
3、#undef指令
(1)用于取消定義一個給定的#define; 例如 #define LIMIT 400 #undef LIMIT
4、#ifdef #ifndef #else #endif 對常量是否定義進行判定
5、#if #elif 對常量整數(shù)表達式進行判斷,如果表達式非零值,則表達式為真
(1)defined(常量名) 參數(shù)已用#define定義過,那么defined返回1,否則返回0
6、預定義宏
(1)..DATE.. 進行預處理的日期(“Mmm dd yyyy”形式的字符串文字)
(2)..FILE.. 代表當前源代碼文件名的字符串文字
(3)..LINE.. 代表當前源代碼文件中的行號的整數(shù)常量
(4)..STDC.. 設置為1時,表示該實現(xiàn)遵循C標準
(5)..STDC_VERSION.. 為C99時設置為199901L
(6)..TIME.. 源文件編譯時間,格式為“hh:mm:ss"
7、其他宏
(1)#line指令用于重置由LINE FILE宏報告的行號和文件名,可以這樣使用:#line 1000 #line 10 "cool.c"
(2)#error指令使預處理器發(fā)出一條錯誤信息,該消息包含指令中的文本 : #error Not C99
(3)#pragma
8、內聯(lián)函數(shù)
(1)聲明
inline void eatline()
{
statement;
}
(2)運行:eatline();
(3)內聯(lián)函數(shù)應該比較短小,無法獲得內聯(lián)函數(shù)的地址(實際上可以獲得地址,但這樣會使編譯器產生非內聯(lián)函數(shù))
9、數(shù)學庫math.h
(1)double acos(double x)
(2)double asin(double x)
(3)double atan(double x)
(4)double atan2(double y, double x)
(5)double cos(double x)
(6)double sin(double x)
(7)double tan(double x)
(8)double exp(double x)
(9)double log(double x)
(10)double log10(double x)
(11)double pow(double x, double y)
(12)double sqrt(double x)
(13)double ceil(double x)
(14)double fabs(double x)
(15)double floor(double x)
10、通用工具庫stdlib.h
(1)atexit()函數(shù),使用函數(shù)指針,注冊退出時要調用的函數(shù) ,至少可防止32個函數(shù)
(2)exit()函數(shù),0=EXIT_FAILURE代表成功終止,非零值=EXIT_FAILURE代表失敗的終止
(3)快速排序函數(shù)qsort(void (
)[], size_t count, size_t TypeSize, void *CompareFunction)
11、診斷庫asser.h
(1)asser()宏,接受整數(shù)表達式做為參數(shù),如果表達式值為假,assert()向標準錯誤流寫一條錯誤消息并調用abort()函數(shù)以終止程序
12、stirng.h庫中的memcpy()和memmove()
(1)void *memcpy(void *restrict s1, const void *restrict s2, size_t n);假定兩個內存區(qū)域之間沒有重疊
(2)void *memmove(void *s1, const void *s2, size_t n);無法假定沒有重疊
(3)以上兩個函數(shù)均從s2指向的位置復制n字節(jié)數(shù)據到s1指向的位置,且俊返回s1的值
13、可變參數(shù):stdarg.h
(1)使用步驟:
①在函數(shù)原型中使用省略號 void f1(int n, ...);
③用宏將該變量初始化為一個參數(shù)列表 va_list ap;
④用宏訪問這個參數(shù)列表 va_start(ap, lim);
⑤用宏完成清理工作 va_end(ap);

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容