既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新
#define VERSION “Android 4.0”
#else
#error Compile Version is not provided!
#endif
int main()
{
printf(“%s\n”,VERSION);
return 0;
}
终端输出:
######
看见没,编译的时候输出#pragma message信息,运行的时候根本看不见,你们可以通过预处理命令,看下是否在预处理阶段处理了,gcc -E test.c -o test.i 然后找到test.i文件,双击用gedit打开
![](https://img-blog.csdn.net/2018060117102198?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpdWNodW5qaWUxMQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
看见没,预处理根本没处理#pragma message指令,所以#pragma message指令是在编译器处理的
###### 2、#pragma once:指示编译器头文件被编译一次
#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;
看下终端输出:
![](https://img-blog.csdn.net/20180601170623374?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpdWNodW5qaWUxMQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
###### 3、#pragma pack:指定内存对齐
#include <stdio.h>
#pragma pack(2)
struct test1
{ //对齐参数 偏移地址 大小
char c1; //1 0 1
char c2; //1 1 1
short s; //2 2 2
int i; //2 4 4
};
#pragma pack()
#pragma pack(4)
struct test2
{ //对齐参数 偏移地址 大小
char c1; //1 0 1
short s; //2 2 2
char c2; //1 4 1
int i; //4 8 4
};
#pragma pack()
#pragma pack(8)
struct S1
{ //对齐参数 偏移地址 大小
short s; //2 0 2
long l; //4 4 4
};
struct S2
{ //对齐参数 偏移地址 大小
char c; //1 0 1
struct S1 d; //4 4 8
double e;//理论//8 16 8 这里实际是错误的,gcc不支持8字节对齐,所以这里默认是4字节对齐 //实际//4 12 8 所以整个占用内存是20字节
};
#pragma pack()
int main()
{
printf(“sizeof(struct test1) = %d\n”,sizeof(struct test1)); //输出8
printf(“sizeof(struct test2) = %d\n”,sizeof(struct test2)); //输出12
printf("sizeof(struct S1) = %d\n",sizeof(struct S1)); //输出8
printf("sizeof(struct S2) = %d\n",sizeof(struct S2)); //理论计算应该输出24 但是实际打印输出是20 这是因为gcc不支持8字节内存对齐,所以这里是默认4字节对齐,
return 0;
}
看下终端打印输出:
![](https://img-blog.csdn.net/20180603183919397?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpdWNodW5qaWUxMQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
![img](https://img-blog.csdnimg.cn/img_convert/7cea7e50cb15f61e09dcff48909f9f5e.png)
![img](https://img-blog.csdnimg.cn/img_convert/0e1f3574cd3906ea9d9dbb3b330e55ec.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新**
**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618679757)**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新**
**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618679757)**