关于#define

刚看了点define的知识,自己写写回忆一下。

#define 用于宏定义,宏定义是在程序预处理阶段完成的,通常前面有#的都是在程序预处理阶段完成。

#define 通常有两种使用形式。带参数的和不带参数的形式。

第一种:不带参数的宏

例如:#define  pi  3.1415926  

使用宏定义可以方便我们编程。通常后面不用分号,如果有分号,在预处理阶段宏展开是会将分号一同替换,但不会报错,而在编译的时候 就会报错。

宏定义必须写在函数之外,作用范围是源程序的结尾。如果要终止其作用域,可以使用#undef命令。

第二种:带参数的宏

#define 宏名(形参名)字符串

例如:

#define M(y)  ((y)*(y)+3*(y))

调用是可以: k=M(5);

这样预处理之后 k=((5)*(5)+3*(5));

 

通常由于同一程序容易重复包含头文件。所以为了防止重复编译,可以是用条件编译开关。例如

#ifndef   _headfileXXX

    文件内容

#define  _headfileXXX

   文件内容

#endif

 

刚又看到一点知识,补充上去。

#define M(x,y)  x##y   //这个是将x,y连接起来

#define N(x)    #@x    //这个是将x转换为字符

#define Q(x)#x       //这是将x转换为字符串

例如:

int  n=M(123,456)  结果 n =123456;

char  c=N(4)  结果 c='4'

char *str=Q(456) 结果 str="456"

#define SYSTEM_NOT_INITIALIZED 400001 #define SYSTEM_INIT_FAILED 400002 #define SYSTEM_MAINDIRPATH_SET_ERROR 400003 #define SYSTEM_FACTORY_SET_FAILED 400004 #define SYSTEM_MODALITY_SET_FAILED 430005 #define SYSTEM_STOP_ACQUISITION_FAILED 330016 #define SYSTEM_DO_ACQUISITION_FAILED 430017 #define SYSTEM_DO_RECON_FAILED 430028 #define SYSTEM_STOP_RECON_FAILED 430028 #define SYSTEM_SET_CBCTSUBMODE_FAILED 430028 #define SYSTEM_GET_CBCTSUBMODE_FAILED 430028 #define SYSTEM_SET_PARTIENTYPE_FAILED 430028 #define SYSTEM_GET_PARTIENTYPE_FAILED 430028 #define SYSTEM_SET_PANOORBIT_FAILED 430028 #define SYSTEM_GET_PANOORBIT_FAILED 430028 #define SYSTEM_GET_PROJIMAGEFILEPATH_FAILED 430028 #define SYSTEM_GET_RECONIMAGEFILEPATH_FAILED 430028 #define DETECTOR_QUEAY_FAILED 410001 #define MOTOR_QUEAY_FAILED 420001 #define MOROT_DO_DEMORUN_FAILED 420002 #define MOROT_STOP_DEMORUN_FAILED 420003 #define HV_QUEAY_FAILED 430001 #define HV_SET_KV_FAILED 430002 #define HV_SET_MA_FAILED 430021 #define HV_SET_MS_FAILED 430022 #define HV_SET_ET_FAILED 430023 #define HV_SET_PERIOD_FAILED 430024 #define HV_SET_DUTY_FAILED 430025 #define HV_GET_KV_FAILED 430018 #define HV_GET_MA_FAILED 430021 #define HV_GET_MS_FAILED 430022 #define HV_GET_ET_FAILED 430023 #define HV_GET_PERIOD_FAILED 430024 #define HV_GET_DUTY_FAILED 430025 #define COLLIMATOR_QUEAY_FAILED 440001 #define COLLIMATOR_SET_INDEX_FAILED 440002 #define COLLIMATOR_GET_INDEX_FAILED 440003 #define CAMERA_QUEAY_FAILED 450001 #define CAMERA_SET_SWITCH_FAILED 450002 #define CAMERA_SET_BRIGHTNESS_FAILED 450003 #define CAMERA_SET_CONTRAST_FAILED 430028 #define CAMERA_SET_SATURATION_FAILED 430028 #define CAMERA_SET_SHARPNESS_FAILED 430028 #define CAMERA_GET_SWITCH_FAILED 430028 #define CAMERA_GET_BRIGHTNESS_FAILED 430028 #define CAMERA_GET_CONTRAST_FAILED 430028 #define CAMERA_GET_SATURATION_FAILED 430028 #define CAMERA_GET_SHARPNESS_FAILED 430028 请将宏定义后的数字仿照每段代码(以空白行为分隔)的第一行按顺序改为合适的形式
最新发布
07-22
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值