牛骨文教育服务平台(让学习变的简单)
博文笔记

浅谈宏定义使用技巧

创建时间:2013-03-17 投稿人: 浏览次数:132

  1、宏定义介绍   

      宏定义又称为宏替换,简称宏。它是在预处理阶段用预先定义的字符串替代标识符的过程。其定义的一般形式为:
 #define    标识符    字符串 
      宏定义中的标识符都采用大写,这是编程中一种约定俗成的习惯。在了解如何使用宏定义之前,我们先来了解使用宏的过程中需要注意的几个要点。
      1)宏替换不做语法检查,所以在使用的时候要格外小心。   
      2)宏替换通常在文件开头部分,写在函数的花括号外边,作用域为其后的程序,直到用   ❑
      3)# u n d e f 命令终止宏定义的作用域。
      4)不要在字符串中使用宏,如果宏名出现在字符串中,那么将按字符串进行处理

2、宏定义会用的意义

     1 )减少不必要的修改,提升程序的可预读性

     2 )提升代码的可移植性 

3、 如何使用宏定义实现变参     

#define    print(...)   printf(__VA_ARGS__) 
     在这个宏中,“. . . ”指可变参数。可变参数的实现方式就是使用“. . . ”所代表的内容替代
_ _ VA _ A R G S _ _ ,看看下面的代码。

  

#include <stdio.h>

#ifdef TEMP
#define print(...) printf(__VA_ARGS__)
#else
#define print(temp, ...) fprintf(stdout, temp, ##__VA_ARGS__)
#endif
int main()
{
    
    print("hello world-------%d
",1111);
    return 0;
}
编译时带 -DTEMP或不带的情况都能正确打印出要打印的内容。但是在第二个宏定义时加##是什么意思?

# ”的作用就是对其后面的宏参数进行字符串化操作;##作用是粘合,将前后两个部分粘合成一个整体。

***************************************************************************************************************************************************
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。