#pragma预处理实例

Posted 一步一个脚印

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#pragma预处理实例相关的知识,希望对你有一定的参考价值。

1.#include <stdio.h>

#if defined(android20)
    #pragma message("Compile Android SDK 2.0...")
    #define VERSION "Android 2.0"
#elif defined(ANDROID23)
    #pragma message("Compile Android SDK 2.3...")
    #define VERSION "Android 2.3"
#elif defined(ANDROID40)
    #pragma message("Compile Android SDK 4.0...")
    #define VERSION "Android 4.0"
#else
    #error Compile Version is not provided!
#endif

int main()
{
    printf("%s\n", VERSION);

    return 0;
}


2.#include <stdio.h>

#pragma pack(8)

struct S1
{
    short a;
    long b;
};

struct S2
{
    char c;
    struct S1 d;
    double e;
};

#pragma pack()

int main()
{
    struct S2 s2;
    
    printf("%d\n", sizeof(struct S1));
    printf("%d\n", sizeof(struct S2));
    printf("%d\n", (int)&(s2.d) - (int)&(s2.c));

    return 0;
}


以上是关于#pragma预处理实例的主要内容,如果未能解决你的问题,请参考以下文章

#pragma预处理命令详解

C++ #pragma comment语法(预处理指令)

#pragma使用分析

#pragma

#pragma once

关于结构体内存对齐方式的总结(#pragma pack()和alignas())