目 录
(1) #pragma message 用于自定义编译信息【Linux下】
(3)#pragama pack(每一步的字节数) :用于指定内存对齐
C语言#pragma使用方法:#pragma用于指示编译器完成一些特定的动作
#pragma所定义的很多指示字是编译器特有的(每种编译可能都不一样)
(1) #pragma message 用于自定义编译信息【Linux下】
#include<stdio.h>
#define ANDROID20//这行代码定义了一个宏ANDROID20。
#if defined ANDROID20//这行代码检查是否定义了ANDROID20宏。如果定义了,就会执行下面的代码块。
#pragma message "Compile Android SDK 2.0..."//编译的时候输出#pragma message信息,运行的时候根本看不见
#define VERSION "Android 2.0"//在ANDROID20宏被定义的情况下,定义了一个名为VERSION的宏,并赋值为"Android 2.0"。
#endif
int main()
{
printf("%s\n", VERSION);
return 0;
}
输出结果
预处理根本没处理#pragma message指令,所以#pragma message指令是在编译器处理的
(2)#pragma once 用于保证头文件只被编译一次
main
#include <stdio.h>
#include "test.h"
#include "test.h"
int main()
{
printf("g_value = %d\n",g_value);
return 0;
}
test.h
#pragma once
int g_value = 10;
输出结果
(3)#pragama pack(每一步的字节数) :用于指定内存对齐
(一般用在结构体,struct占用内存大小)
#include<iostream>
#pragma pack(1) //每一步的字节数是1
using namespace std;
struct Stu
{
int name;
char sex;
};
int main()
{
cout << "sizeof(Stu):" << sizeof(Stu) << endl;
return 0;
}
输出结果