一、C 宏定義
#define PI 3.14159 int main() { double r = 5; double area = PI * r * r; return 0; }
宏定義是一種預處理指令,用來在代碼中定義一個常量或者一個簡單的函數。在C++中,宏定義使用#define關鍵字,其語法為#define 。宏定義可以定義一個或多個參數,類似於函數的形式參數,在宏展開的時候可以被替換成實際參數。
在上面的示例中,我們使用宏定義定義了一個常量PI,並在主函數中使用了宏定義中的值,計算圓的面積。由於宏定義只是簡單地進行文本替換,因此可以提高代碼的可讀性和可維護性。
二、C 宏定義與數字判斷
#include #define IS_EVEN(x) ((x % 2) == 0) int main() { int num = 4; if (IS_EVEN(num)) { printf("%d is even", num); } return 0; }
宏定義可以用來進行數字判斷,例如判斷一個數是否為偶數。在上述示例中,我們使用宏定義IS_EVEN(x)來判斷一個數x是否為偶數,如果是則返回1,否則返回0。在主函數中,我們使用if語句來判斷num是否為偶數,如果是則輸出「4 is even」。
三、C 宏定義使用
#define MAX(a, b) ((a > b) ? a : b) int main() { int x = 10, y = 20; int max_num = MAX(x, y); return 0; }
宏定義可以用來定義簡單的功能函數,例如比較取最大值。在上述示例中,我們使用宏定義MAX(a, b)來比較a和b的大小,返回較大者。在主函數中,我們定義了兩個變數x和y,使用MAX宏定義來獲取兩者之間的最大值。
四、C 宏定義 遞歸
#define FACTORIAL(x) ((x == 0) ? 1 : x * FACTORIAL(x - 1)) int main() { int num = 6; int factorial = FACTORIAL(num); return 0; }
宏定義也可以進行遞歸實現,例如求階乘。在上述示例中,我們使用宏定義FACTORIAL(x)來求x的階乘。當x等於0時,返回1;否則返回x與FACTORIAL(x-1)的乘積。在主函數中,我們定義了一個變數num,使用FACTORIAL宏定義求num的階乘。
五、C 宏定義函數
#define SQUARE(x) ((x) * (x)) int main() { int num = 5; int square = SQUARE(num); return 0; }
宏定義還可以定義函數。在上述示例中,我們使用宏定義SQUARE(x)來計算x的平方。在主函數中,我們定義了一個變數num,使用SQUARE宏定義計算num的平方。
六、C 宏定義比較
#define EQUAL(x, y) ((x) == (y)) int main() { int num1 = 5, num2 = 5; if (EQUAL(num1, num2)) { printf("%d is equal to %d", num1, num2); } return 0; }
宏定義可以用來比較兩個值是否相等。在上述示例中,我們使用宏定義EQUAL(x, y)比較x和y是否相等,如果相等則返回1,否則返回0。在主函數中,我們使用if語句來判斷num1和num2是否相等,如果是則輸出「5 is equal to 5」。
七、C宏定義吧
#define TRUE 1 #define FALSE 0 int main() { if (TRUE) { printf("TRUE"); } if (FALSE) { printf("FALSE"); } return 0; }
宏定義可以用來定義布爾類型的常量。在上述示例中,我們定義了TRUE和FALSE兩個常量,分別賦值為1和0。在主函數中,我們使用if語句來判斷常量的值,並輸出相應的結果。
八、C 宏定義的值
#define NUM 10 int main() { int arr[NUM] = {0}; for (int i = 0; i < NUM; i++) { arr[i] = i + 1; } return 0; }
宏定義的值可以用來定義數組的大小等常量。在上述示例中,我們使用宏定義NUM來定義數組的大小為10。在主函數中,我們定義了一個大小為NUM的數組,並使用for循環給數組賦初值。
九、C 宏定義 值比較
#define MIN(a, b) ((a b) ? a : b) int main() { int x = 5, y = 10; int min_num = MIN(x, y); int max_num = MAX(x, y); if (MIN(2 * x, y) == 2 * x) { printf("2x is smaller than y"); } return 0; }
宏定義可以用來進行值比較,例如獲取最小值和最大值。在上述示例中,我們分別使用宏定義MIN(a, b)和MAX(a, b)來獲取兩個數的最小值和最大值。同時,我們也可以使用宏定義進行值比較,例如if語句中的條件判斷。
十、C 宏定義多重替換
#define ADD(x, y) ((x) + (y)) #define ADD_ONE(x) ADD((x), 1) int main() { int num = 5; int result1 = ADD(num, 3); int result2 = ADD_ONE(num); return 0; }
宏定義可以進行多重替換。在上述示例中,我們使用宏定義ADD(x, y)定義了一個加法函數,使用ADD_ONE(x)來進行num+1的操作,實現了對宏定義的嵌套使用。
原創文章,作者:TSLD,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/142606.html