C-Language-Middle-Operation

一、关于宏

1、宏定义

#define   [MacroName]   [MacroValue]
#define   PI   (3.1415926)

2、取消宏

#undef   [MacroName] 
#undef   PI

3、带参宏

#define   max(a,b)   ((a)>(b)?(a):(b))

二、关于typedef

1、重新定义一些类型

typedef  unsigned long int  uint32;  //自定义类型别名,类似于宏替换

2、重新定义结构体名

struct node n;             //标准形式
typedef struct node{}NODE; //别名NODE
NODE n;                    //等价于struct node n;

三目运算符

注释:可替换部分if else运算

条件表达式 ? 表达式1 : 表达式2

(a)>(b)  ?    c   :    d     //成立结果为c,不成立为d

四、#pragma预处理

1、格式

#pragma para

2、常作为注释信息

#pragma ------------分隔符-----------  //可在任何地方插入

这里写图片描述
详细资料请参考:http://c.biancheng.net/cpp/html/469.html

五、#if, #elif, #else, #endif、#ifdef, #ifndef条件编译

注释:类似于if else,只是#if是在更高的维度,相当于代码组之间,一般用于测试两组相似代码

int main()
{
#if 0                       //#if 0/1
printf("%d",isPrime(5)); 
#elseif 1
printf("%d",isPrime(6));
#else
printf("%d",isPrime(7));
#endif;                     //务必加结尾
return 0;
}

六、断言assert

注释:其实为一个判断bool类型的表达式

#include < assert.h >
void assert( int expression );

实例一:

#include <stdio.h>
#include <assert.h>
#include <stdlib.h>
int main( void )
{
       FILE *fp;

       fp = fopen( "test.txt", "w" );//以可写的方式打开一个文件,如果不存在就创建一个同名文件
       assert( fp );                           //所以这里不会出错
       fclose( fp );

       fp = fopen( "noexitfile.txt", "r" );//以只读的方式打开一个文件,如果不存在就打开文件失败
       assert( fp );                           //所以这里出错
       fclose( fp );                           //程序永远都执行不到这里来
       return 0;
}

实例二:

assert(i < 100);
 i++;

七、#error

注释:相当于编译期的断言,有#error编译通不过,相当于一条提示信息

#error error-message;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值