C语言编程陷阱:预处理器 陷阱

  1. 预处理器
    1. 不能忽视宏定义中的空格:
#include 

#define ADD(x, y) (x + y)

int main() {
    int a = 3;
    int b = 5;
    int result = ADD(a, b);  // 注意空格的位置
    printf("Result: %d\n", result);
    return 0;
}
  1. 宏并不是函数:
#include 

#define SQUARE(x) (x * x)

int main() {
    int num = 5;
    int square = SQUARE(num);
    printf("Square: %d\n", square);
    return 0;
}
  1. 宏并不是语句:
#include 

#define DEBUG_MODE  // 定义宏以启用调试模式

int main() {
    printf("This is a normal statement.\n");
    
    #ifdef DEBUG_MODE  // 如果debug模式已定义,则执行调试语句
        printf("This is a debug statement.\n");
    #endif
    
    return 0;
}
  1. 宏并不是类型定义:
#include 

#define MY_INT int  // 定义宏替代int关键字

int main() {
    MY_INT num = 10;  // 使用宏定义的自定义类型
    printf("Number: %d\n", num);
    return 0;
}
  1. #definetypedef的区别:
#include 

#define MY_INT int  // 使用宏定义替代int关键字

typedef int MyInt;  // 使用typedef定义新的类型别名

int main() {
    MY_INT num1 = 10;  // 使用宏定义的自定义类型
    MyInt num2 = 20;  // 使用typedef定义的类型别名
    printf("Number 1: %d\n", num1);
    printf("Number 2: %d\n", num2);
    return 0;
}

这些示例代码展示了每个概念在C语言中的应用。它们可以帮助你理解宏定义、类型定义和预处理器的特性、使用方法和注意事项。


推荐一个零声学院免费教程,个人觉得老师讲得不错, 服务器课程

你可能感兴趣的:(C,c语言,开发语言)