Chinaunix首页 | 论坛 | 博客
  • 博客访问: 439112
  • 博文数量: 71
  • 博客积分: 26
  • 博客等级: 民兵
  • 技术积分: 1246
  • 用 户 组: 普通用户
  • 注册时间: 2012-07-23 14:46
个人简介

linux --- 一切皆文件

文章分类

全部博文(71)

文章存档

2021年(1)

2019年(2)

2018年(4)

2017年(7)

2016年(11)

2015年(1)

2014年(2)

2013年(33)

2012年(10)

分类: C/C++

2013-05-21 22:05:53

预处理      通过CPP程序        通过gcc -E xxx.c        获取预处理后的文件
编译        gcc                       通过gcc -S xxx.c        获取汇编程序代码    xxx.s
汇编        gas                    通过gcc -c xxx.c            获取xxx.o文件
连接        ld                        gcc                        会的.out可执行程序

可以通过  命令  ldd 来获取可执行程序所关联的库文件。

#define  add(A,B)   ((A)  + (B))
宏定义里的所有变量都要加上括号,要不然容易出错。

#define   food(A,B)    do{ xxxxxx}while(0)    最后不要加分号
这样些do{}while(0)的目的是防止多分号的问题。


typeof   的到那个变量的类型
#define  foo(A,B)    ({   xxx             \
                                           xxx         \  
                                            xxx        })
返回最后一个表达式的值

在头文件中,为了保证不被重复包含xxx.h
#ifndef  _XXX_H_
#define _XXX_H_

XXXXXXXXXXX

#endif    /*_XXX_H_*/


注释代码段
#if 0

#else

#endif

#if SYSTEN == win

#elif    SYSTEN == unix

#ENDIF


STRINGA  ## STRINGB        连接STRINGA和STRINGB

#将输入的表达式作为输出的一部分:
#define printd(export)    printf(#export " = %f \n ",export)
printd(x/y);      展开为:     printf("x/y = %f \n",x/y);




#if  !defined(HDR)
#define HDR
xxxx
#endif


例题:定义宏swap(t,x,y),交换t类型的两个参数

#define   swap(t,x,y)   {     t = _z;    \
                                      _x = _y;   \
                                      _y = _z ;      }



阅读(1493) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~