美文网首页
C 语言 宏 整理

C 语言 宏 整理

作者: json_jie | 来源:发表于2017-10-10 11:32 被阅读26次

开头的语句就是预处理命令

#define              定义一个预处理宏
#undef               取消宏的定义

#include             包含文件命令
#include_next        与#include相似, 但它有着特殊的用途

#if                   编译预处理中的条件命令, 相当于C语法中的if语句
#ifdef                判断某个宏是否被定义, 若已定义, 执行随后的语句
#ifndef               与#ifdef相反, 判断某个宏是否未被定义
#elif                 若#if, #ifdef, #ifndef或前面的#elif条件不满足, 则执行#elif之后的语句, 相当于C语法中的else-if
#else                 与#if, #ifdef, #ifndef对应, 若这些条件不满足, 则执行#else之后的语句, 相当于C语法中的else
#endif                #if, #ifdef, #ifndef这些条件命令的结束标志.
defined               与#if, #elif配合使用, 判断某个宏是否被定义

#line                 标志该语句所在的行号
#                     将宏参数替代为以参数值为内容的字符窜常量
##                    将两个相邻的标记(token)连接为一个单独的标记
#pragma               说明编译器信息

#warning              显示编译警告信息
#error                显示编译错误信息
#和##用于对字符串的预处理操作, 所以他们也经常用于printf, puts之类的字符串显示函数中.
#用于在宏扩展之后将tokens转换为以tokens为内容的字符串常量.
e.g.
#define TEST(a,b) printf( #a "<" #b "=%d\n", (a)<(b));
注意: #只针对紧随其后的token有效!
##用于将它前后的两个token组合在一起转换成以这两个token为内容的字符串常量. 注意##前后必须要有token.

语句中可以利用" \ "来换行.

把宏参数变为一个字符串,

用##把两个宏参数贴合在一起.

define A(x) T_##x

A(1)------〉T_1

define C(x) #x

C(1)------〉 "1 "

相关文章

  • C 语言 宏 整理

    开头的语句就是预处理命令 语句中可以利用" \ "来换行. 把宏参数变为一个字符串, 用##把两个宏参数贴合在一起...

  • Google c++ style 学习

    最近在整理c++代码,顺便参考谷歌的c++编译规范,总结了几点是我们日常碰到比较多的。 一 宏使用 C语言写多了容...

  • 精解C语言预处理命令(三)之“宏”的用法二

    关于C语言带参数的宏定义中的参数 C语言允许宏带有参数。在宏定义中的参数称为“形式参数”,在宏调用中的参数称为“实...

  • c语言的宏

    C语言的宏 宏是一个字符串替换的工具,再编译之前,预处理阶段完成。以#define起始的行为宏的定义。宏中出现的几...

  • C语言宏offsetof

    C 库宏 offsetof(type, member-designator) 会生成一个类型为 size_t 的整...

  • C语言宏定义

    1、一般定义 2、条件判断 3、编译时错误信息 4、系统常见自定义宏 5、宏参数的字符串化和宏参数的连接

  • const 宏 static extern

    IOS 基础-define、const、extern、全局变量 const 与 宏的区别 : C语言宏高级用法 [...

  • C语言学习:C语言宏定义

    学C语言很久了,但还是不敢用宏定义,大神喜欢用宏定义。关于宏定义你又了解多少了,下面我们说一下宏定义。 宏定义的概...

  • iOS nil、Nil、NULL和[NSNull null]

    NULL 是宏,是对于 C 语言指针而使用的,表示空指针nil 是宏,是对于 Objective-C 中的对象而使...

  • C语言自定义布尔bool类型

    C语言没有布尔类型,可以采用宏定义创建该类型

网友评论

      本文标题:C 语言 宏 整理

      本文链接:https://www.haomeiwen.com/subject/nrlvyxtx.html