关键字之#program

文章介绍了C语言中#pragma指令的三种常见用法:pragmamessage用于在Linux下自定义编译时信息,#pragmaonce确保头文件仅被编译一次,以及pragmapack用于指定内存对齐。展示了这些指令在实际代码中的应用和效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目    录

(1) #pragma message 用于自定义编译信息【Linux下】

(2)#pragma once 用于保证头文件只被编译一次

  (3)#pragama pack(每一步的字节数)  :用于指定内存对齐

         (一般用在结构体,struct占用内存大小)


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;
}

输出结果

参考:C语言#pragma使用方法_c pragma-优快云博客 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值