90.#define高級用法
阿新 • • 發佈:2018-02-23
__line__ 用法 print getchar() spa 字符串 log warn 當前
define把參數變成字符串1 #define f(x) printf("%s",#x);
define連接兩個字符串1 #define a(x) a##x
define把參數變成字符1 #define N(x) #@x
取消#define的作用域1 #undef MN //取消define的作用域
define內聯函數1 #define run() {puts("鋤禾日當午1") ;2 puts("鋤禾日當午2");3 puts("鋤禾日當午3");}
define定義assert
- assert用法
1 assert(a = 0);
- 宏定義assert
1 #define ASSERT(x) 2 if((x))3 { 4 printf("ASSERT %s 代碼出錯\n",#x) ; 5 printf("文件%s %d行\n",__FILE__,__LINE__) ; 6 printf("函數%s \n",__FUNCTION__) ; 7 abort(), getchar();8 return ; 9 }
- #ifdef,#error用法
1 #ifdef N 2 #error 錯誤,不能定義N 3 #endif
#if用法1 #if num==1 2 #error 小夥子你的除數不要寫為0,寫了哥會溢出的 3 #endif
- 內置宏定義__LINE__,__FILE__
1 #define _CRT_SECURE_NO_WARNINGS 2 #include<stdio.h> 3 #include<stdlib.h> 4 #line 1 5 void main() //計數,從這一行開始 6 { 7 //改變行數,某一段到某一段一共多少行
90.#define高級用法