C语言中宏的用法

总结一下C语言中宏的一些特殊用法和几个容易出错的地方。由于本文主要参考GCC文档,某些细节在别的编译器可能有细微差别。

宏基础

宏仅仅是在C预处理阶段的一种文本替换工具,编译完之后对二进制代码不可见。基本用法如下:

标示符别名

#define BUFFER_SIZE 1024

预处理阶段,foo = (char *) malloc (BUFFER_SIZE);会被替换成foo = (char *) malloc (1024);

宏体换行需要在行末加反斜杠\

#define NUMBERS 1, \

2, \

3

预处理阶段int x[] = { N......

关于 Markdown

基本语法标题

# 一级标题

## 二级标题

### 三级标题

#### 四级标题

##### 五级标题

###### 六级标题

分别对应HTML中的<h1>一级标题</h1>,以此类推。

用两个星号标记起来,表示加粗,*一个星号,表示斜体*,这样子表示删除,这些就是最基本的语法了。

插入链接

插入链接:

这是一个 [链接](http://url.com/)

快速链接:

只需要在网址头尾用尖括号包裹即可,比如<http://url.com>

特别支持:

[Google (target=_blank id=google_......