C语言学习笔记12——宏定义与使用分析

宏定义

在C语言中:

  1. #define 是预处理器处理的单元实体之一
  2. #define 定义的宏可以出现在程序的任意位置
  3. #define定义之后的代码可以使用这个宏
  4. 定义宏常量:
    • #define定义的宏常量可以直接使用
    • #define定义的宏常量本质为字面量

宏定义的分析1: 宏定义与函数的对比

  1. 宏表达式被预处理器处理(直接对宏进行文本替换), 编译器不知道宏表达式的存在

  2. 预处理器不会对宏定义进行语法检查, 宏定义是出现的语法错误只能被编译器检测

  3. 宏表达式用 “实参”完全替代形参, 不进行任何运算

  4. 宏表达式没有任何的 “调用”开销,效率于函数

  5. 宏表达式中不能出现递归定义

宏表达式可以比函数更强大,但也更容易出错,在使用时需小心使用


宏定义的分析2:强大的内置宏

含义示例
__FILE__被编译的文件名file1.c
__LINE__当前行号25
__DATE__编译时的日期Jan 31 2018
__TIME__编译时的时间17:01:01
__STDC__编译器是否遵循标准C规范1
/*测试代码*/

#include <stdio.h>

#define LOG(s) printf("[%s] {%s:%d} %s \n", __DATE__, __FILE__, __LINE__, s)

int main()
{
    LOG("Begin to run main code...");

    // ...........

    LOG("End");

    return 0;
}

运行结果

[Feb 25 2018] {..\C_Main\main.c:9} Begin to run main code...
[Feb 25 2018] {..\C_Main\main.c:13} End
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值