嵌入式开发学习——了解c语言运行机制和变量概念(c语言)

目录

1.第一个c语言程序

2.c语言程序运行机制流程

运行机制流程介绍

运行机制流程演示

3.c语言输出内容

4.变量

变量的概念

变量的声明和使用


1.第一个c语言程序

2.c语言程序运行机制流程

运行机制流程介绍
  1. 编写——编写C语言源程序代码,并以文件的形式存储到磁盘中,源代码文件以“.c”作为扩展名,如本项目中main.c 文件。

  2.  预处理——在编译之前,预处理器会处理源代码文件,主要进行一些文本上的处理,包括去掉多余的空格和注释,处理预处理指令(后面会学到),生成经过处理的源代码文件,通常带有.i扩展名。

  3. 编译——编译器接受预处理后的源代码文件,并将其翻译成汇编代码,生成汇编文件,通常带有.s或.asm扩展名。
  4. 汇编——汇编器将汇编代码翻译成机器码并生成一个或多个目标文件,目标文件是二进制文件,通常带有.o(在Unix-like系统上)或.obj(在Windows上)
  5. 链接——链接器将多个目标文件(如果有的话)合并在一起,包括C标准库文件和其他库文件,生成最终的可执行的二进制程序(exe文件)。库文件是由系统提供,里面包括内置的标准函数和数据结构集合等,我们代码中使用的 <stdio.h> 就是标准库提供的,里面定义 printf 这个函数。
  6. 运行——执行该.exe文件得到程序的运行结果。
运行机制流程演示

        通过搭建好的开发环境运行C源文件,所产生的中间文件是不会保存的,只保存最终的可执行二进制程序(.exe文件)。下面,我们使用命令行工具(终端)对 main.c 源文件进行预处理、编译、汇编、链接,这种方式可以保留过程中的中间文件。

  1. 打开命令行终端。
  2. 预处理在终端中输入如下命令,输入完命令,按回车键运行。gcc -E main.c -o main.i运行完成后,会生产 main.i 文件,此为经过预处理的源文件。
  3. 编译在终端中输入如下命令,输入完命令,按回车键运行。gcc -S main.i -o main.s运行完成后,会生产 main.s 文件,此为汇编文件。
  4. 汇编在终端中输入如下命令,输入完命令,按回车键运行。gcc -c main.s -o main.o运行完成后,会生产 main.o 文件,此为二进制文件。
  5. 链接在终端中输入如下命令,输入完命令,按回车键运行。gcc main.o -o main.exe运行完成后,会生产 main.exe 文件,此为可执行文件。
  6. 运行在终端中输入如下命令,输入完命令,按回车键运行。./main.exe会执行 mian.exe 文件,终端中会显示 “Hello World”。

3.c语言输出内容

使用 printf() 输出内容到终端,要输出的内容需要用双引号包裹,如果需要换行可以使用 “\n”。

​
#include <stdio.h>

int main(){

    printf("我是帅哥!\n");
    printf("我是帅哥!\n");
    printf("我是帅哥!\n");

    return 0;
}

​

输出结果

变量

变量的概念
  1. 变量是内存中的一个存储区域,该区域的数据可以在同一类型范围内不断变化。
  2. 通过变量名,可以引用这块内存区域,获取里面存储的值。
  3. 变量的构成包含三个要素:数据类型、变量名、存储的值。

理解变量:就是一个容器,用来存放数据的

​​​​​​​变量的声明和使用
  1. 变量必须先声明,后使用。
  2. 可以先声明变量再赋值,也可以在声明变量的同时进行赋值。
  3. 变量的值可以在同一类型范围内不断变化。

代码示例:

​
#include <stdio.h>
int main(){
  // 声明一个int(整型)类型的变量,取名为num1
  int num1;
  // 为变量num赋值
  num1 = 10;
  // 声明一个int(整型)类型的变量,取名为num2,并赋值
  int num2 = 20;
  // 修改变量num2的值,并赋值为num1
  num2 = num1;
  // 同时声明多个整型变量,并赋值
  int a = 1, b = 20, c = 30;
  return 0;
}

​

输出变量

  1. 格式化字符串是用双引号括起来的一个字符串,里面包括格式占位符和普通字符。
  2. 格式占位符,也叫格式声明符,由“%”和格式字符组成,作用是将输出的数据转换为指定的格式后输出,这里“%d”表示整数,更多的格式占位符后续会进行讲解。
  3. 输出列表是程序需要输出的一些数据,可以是常量、变量或表达式,与格式占位符一一对应。

示例代码:

​
#include <stdio.h>
int main()
{
  // 声明一个int类型的变量,并取名为num1
  int num1;
  // 为变量赋值
  num1 = 100;
  // 声明一个int类型的变量,取名为num2,并赋值
  int num2 = 200;
  printf("num1的值为%d \n", num1); // 使用输出语句printf输出num1变量的值,%d表示输出整数形式
  printf("num2的值为%d \n", num2); // 使用输出语句printf输出num2变量的值,%d表示输出整数形式
  // 修改变量num2的值,把num1变量的值赋值给num2
  num2 = num1;
  printf("num2的值为%d \n", num2); // 使用输出语句printf输出num2变量的值,%d表示输出整数形式
  // 同时声明多个变量,并赋值
  int a = 10, b = 20, c = 30;
  printf("%d %d %d", a, b, c); // 输出a,b,c三个变量的值
  return 0;
}

​

输出结果

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值