了解c语言的条件编译2
简言
了解c语言的条件编译1 条件编译还是有很多东西要学.条件编译 走起
1. #pragma once 对单个c文件只包含一次,多个c文件无效
// once.h
#pragma once
int a;
//main.c
#include <stdio.h>
#include "once.h"
#include "once.h"
int main(int argc, char *argv[])
{
return 0;
}
2. #pragma comment 连接自定义库 可以用相对路径和绝对路径
#pragma comment(lib,"test.lib")
3. #pragma warning
//可以禁用某个警告
#pragma warning(disable:4996)
//只提示一个错误
#pragma warning(once,4996)
//将警告提示改为错误提示
#pragma warning(error:4047)
//默认
#pragma warning(default:4007)
//多个处理
#pragma warning(disable:6996;error:4047)
//让一个或多个warning进栈
#pragma warning(push,)
#pragma warning(push)
#pragma warning(disable:4996)
//让无效警告出栈
#pragma warning(pop)
#pragma pack 让字节对齐
//让内存字节对齐,可以节约内存 参数只能是1,2,4,8,16
#pragma pack(4) //4字节对齐
内置宏
ANSI标准说明了五个预定义:- __LINE__
- __FILE__
- __DATE__
- __TIME__
- __STDC__
#define ASSERT(x) \
if((x)) \
{ \
printf("所在文件%s\n",__FILE__); \
printf("所在行号%d\n",__LINE__); \
printf("所在函数%s\n",__FUNCTION__); \
printf("编译时间%s\n",__TIME__); \
abort(); \
}
int main(int argc, char *argv[])
{
int nunA = 1;
ASSERT(nunA!=0);
system("pause");
}
效果图

秋风
2016-08-21