markdown 从.c到.out
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了markdown 从.c到.out相关的知识,希望对你有一定的参考价值。
#include <stdio.h>
//定义宏
#define R 10
//定义宏函数
#define A(a) a*10
//typedef
typedef int tin; //注意这里和宏不一样,需要使用分号结尾,typedef是有作用域的
//typedef一般和结构体结合进行使用
//struct结构体是一组类型不同的数据的集合
typedef struct stu{
char name[20];
int age;
}stu_t;
//公用体、联合体
union data{
int a;
char b;
int c;
}
#define ADD(a, b) (a+b) //注意这里需要加上小括号
int main()
{
struct stu student = {"lucy", 20};
struct stu students[2] = {{"lucy", 20}, {"jack", 23}};
//stu_t students[2] = {{"lucy", 20}, {"jack", 23}};
printf("%s\n%d\n", students[0].name, students[1].age);
tin x = 1; //tin会被替换成int,但不是预处理阶段替换的
int a = R; //宏替换阶段会被替换成为10
int b = A(a); //宏替换阶段会被替换成为 int b = a*10;
printf("b: %d\n", b);
printf("a: %d\n", a);
printf("hello world\n");
int c = 3;
int d = 5;
int res = ADD(c, d) * ADD(c, d); //如果上面的宏函数定义的时候没有加小括号,
//这里会被替换成:int res = c + d*c + d
printf("res: %d\n", res);
stu_t *p = students;
printf("name = %s\nage = %d\n", p[0].name, p[0].age);
stu_t jack = {"jack", 23};
stu_t *pj = &jack;
printf("name = %s\age = %d\n", (*pj).name, (*pj).age);
return 0;
}
gcc helloworld.c -o helloworld.i -E
.c文件 --> .i文件 --> .s文件 --> .o文件 --> 可执行文件
预处理 编译 汇编 链接
预处理首先要做的就是展开了头文件
进行宏替换(常量、数组buffer)
以上是关于markdown 从.c到.out的主要内容,如果未能解决你的问题,请参考以下文章
markdown 如何在不获取nohup.out的情况下使用nohup命令?
如何在MarkDown快速创建表格
C# BBcode 转 Markdown
Markdown中实现折叠代码块
10款流行的Markdown编辑器,总有一款适合你
半小时学会Markdown语法,让你从快速入门到熟练掌握typora编辑器,大家记笔记写讲义都在用。