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编辑器,大家记笔记写讲义都在用。