C语言【编译器、变量、输入输出有关的】

这篇具有很好参考价值的文章主要介绍了C语言【编译器、变量、输入输出有关的】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

C语言【编译器、变量、输入输出有关的】

一些想到的【从编译器到变量到输入输出有关的】的问题,有些是按自己理解写的答,有些待解决。

  • C语言可以跨平台,汇编不可以,编译时C语言会根据不同系统翻译成不同形式的汇编语言。

  • C语言中算数运算会在寄存器中运行,变量保存在堆或栈中。


  • 遗留问题: C语言变量名如何在汇编语言中表现的?


  • 一些C标准:

    C89 = C90 = ANSIC = 标准C

    C99 引入了一些新特性(如 单行注释)

    C11 (2011年发行)

    ......

  • C语言C语言标准C编译器 之间的联系?

    C语言 是一个泛指。

    C语言标准 是一些权威机构(也许也有个人)定义的一些语法规范。

    C编译器 是按照C语言标准将C语言代码翻译成机器可以识别的指令的程序。

    C编译器比如 gcc、clang等。

    可以通过gcc或clang编译C语言代码时指定C标准,如下:

    gcc -std=c89 main.c -o main		# c89的"c"一定要小写
    clang -std=c99 main.c -o main
    

    mingw和cygwin都是用于安装C语言编译器的跨平台工具, cygwin是一个类Unix环境的模拟器 。


  • 遗留问题:makefile的编写规则?make为什么可以运行makefile?在win上如何使用make? 

  • 遗留问题:标准输入输出等函数是编译器提供的吗?它们属不属于编译器的一部分?尝试下载gcc或clang编译器,查看不同编译器之间库函数有什么不同。 


  • main函数返回值返回到了哪里?-----操作系统。 有没具体点的回答呢?


  • 待附图:C语言的执行过程? 

    • 预处理。 .c 文件 ----> .i 文件。 .i 文件为解决了#(预处理)后的文件。

      gcc -E xxx.c -o xxx.i
      
    • 编译。 .i 文件 ----> .s 文件。 .s文件为汇编代码文件。

      gcc -S xxx.i -o xxx.s
      
    • 汇编。 .s 文件 ----> .o 文件 / .obj 文件。 .obj 为二进制文件。

      gcc -c xxx.s -o xxx.obj   # 或
      gcc -c xxx.s 	 		# 这样默认输出为 .o 文件
      		 				# .o文件是Linux下默认的二进制文件
      
    • 链接。 多个 .o 文件 或 .obj 文件 ----> .exe文件(或其他格式可执行文件)

      gcc xxx.o -o xxx.exe	# 后面的-o xxx.exe可以不写
      

  • 使用 scanf(...) 输入数据时,输入数据的格式要与 scanf(...) 中第一个参数的格式相同。且使用 scanf(...) 时不能加提示语,想要提示输入的话,可以前面加 printf(...)

    // 格式之间是用逗号隔开,则输入之间也用逗号隔开
    scanf("%d,%d,%d", &num1, &num2, &num3);
    // 格式之间是用空格隔开,则输入之间也用空格隔开
    scanf("%d %d %d", &num1, &num2, &num3);
    
  • 逗号表达式和同时多个声明并赋值使用逗号的区别? 

    两种根本不是一回事。

    int a=10, b=20, c, d=30; 	// 这就是连续声明或声明并赋值
    a = (10, b = 2*2, 5);				// 给b赋值4,并给a赋值5
    int x, y, z = (10, 20, 30);   // 只给z赋值30。 x、y只声明一下。
    

  • 遗留问题:可不可以用"%d"输出字符类型的数据?反过来呢?其他的格式和变量混乱输出形式呢? 像"%d"这样的占位符还有哪些,分别有什么作用? 

    %d 表示十进制整数。其他问题待查 。


  • 问题:有哪些变量默认初始值为0?全局变量是吗?数组呢?局部变量?......  局部变量和静态局部变量是随机值,全局变量是默认为0或""。静态局部变量的作用是有记忆功能,它被放在全局静态区,和全局变量在一个区。

  • vscode + gcc 时,C语言文件的路径不能有中文存在。

  • C语言中的标识符是什么,有没有长度限制,区不区分大小写?

    程序中各种变量名、函数名、数组名、结构体名、枚举类型名等。

    C语言标识符可以包含字母、数字、下划线,但不能以数字开头。

    没有长度限制(也许有些编译器或平台会限制),但不建议写太长。

    区分大小写。

  • 记四个有点眼生的存储类型关键字: auto、extern、register、static 分别有什么作用待查

  • 记几个C99增加的关键字:inline、restrict、_Bool、 _Complex、Imaginary 分别有什么作用待查,似乎用处不是很广泛

  • 记几个C11增加的关键字:_Alignas、 _Alignof、 _Atomic、 Static_assert、 _Noreturn、 _Thread_local、 _Generic

  • 初步认识常量

    • 字面量常量。如1、2、3......

    • 标识符常量。

      第一种表示: #define 常量名 常量值 //预处理方式 ,一种替换,后面跟表达式时记得加括号,不加分号

      第二种表示: const 类型 常量名 = 常量值;

      枚举常量 待学


  • 遗留问题:main函数中的参数 int argc, char const * argv[] 有什么含义?


  • C语言没有乘方运算符,但可以使用math.h头文件中的函数 pow(2, 3) 即表示2的3次方,返回double类型。


  • 遗留问题:C标准库中的头文件只是函数声明的功能吗?比如stdio.h有没有对应的体文件?


  • 遗留问题:getchar()的具体细节?


  • 遗留问题:int i=1;  i++ + ++i; 和 ++i + i++; 的结果是多少?如何运算的?文章来源地址https://www.toymoban.com/news/detail-746180.html

到了这里,关于C语言【编译器、变量、输入输出有关的】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 编译原理课程设计--C语言编译器

    源程序1: 源程序1词法分析结果: 与程序1语法分析结果(部分) 源程序1四元式: 源程序1优化后的四元式: action-goto表(部分) 文件目录: (1)掌握语义分析过程,即语法制导翻译过程。 (2)在语法分析的LR分析程序中的基础上添加程序,进行语义分析,生成源程序的四

    2024年02月08日
    浏览(48)
  • C语言编译器(C语言编程软件)

    对于当前主流桌面操作系统而言,可使用 Visual C++、GCC 以及 LLVM Clang 这三大编译器。 Visual C++(简称 MSVC)是由微软开发的,只能用于 Windows 操作系统;GCC 和 LLVM Clang 除了可用于 Windows 操作系统之外,主要用于 Unix/Linux 操作系统。 像现在很多版本的 Linux 都默认使用 GCC 作为

    2024年02月03日
    浏览(36)
  • 链接文件学习(七):英飞凌MCU Tasking编译器LSL链接文件解析 及代码变量定位方法

    目录   1、Tasking的链接文件 1.1、DSRAM中的数据存放 1.2、PFlash中的代码存放 1.3、LMU 1.4、PSRAM 1.5、UCB 2、代码与变量定位

    2024年02月07日
    浏览(46)
  • C语言编译器之三,VC++

    三、Visual C编译器         Microsoft Visual C++(简称Visual C++、MSVC、VS或VC)是微软公司的免费C++编译器与开发工具,具有集成开发环境(Visual Studio),可提供编辑C语言,C++以及C++/CLI等编程语言。在Windows系统中,Microsoft Visual C++的应用还是相当广泛的。          3.1、Vis

    2024年02月05日
    浏览(32)
  • 第一课-C 语言,IDE, 编译器

    C/C++ 语言的优势:  语法简单结构紧凑;  - 32个,9种控制语句  代码书写灵活;  有丰富多样的运算符;- 34个运算符  有丰富的数据结构;  几乎是现在计算机语言的鼻祖。  指令,指令集,程序    按是否强制类型分类:     强类型语言(必须指明变量类型) c c++   

    2023年04月08日
    浏览(34)
  • Ubuntu 用gcc/CMakefile编译器 编译、运行c语言程序

    目录 一. 在Ubuntu系统下用c语言编写一个简单的输出hello world 的程序,并编译、运行。 1.1 gcc/g++简介 1.2 c++程序输出 Hello World: 1.3 c语言程序输出 Hello World: 二. 编写一个主程序文件main1.c和一个子程序文件sub1.c,实现函数间的调用 2.1  编写sub1.c 和main1.c 函数 2.1.1 编写sub1.c函数

    2024年02月04日
    浏览(41)
  • python语言在线编译器,python 在线编程工具

    大家好,小编来为大家解答以下问题,python语言在线编译器,python 在线编程工具,今天让我们一起来看看吧! 1.python在线编译器的解决方案 方案一:vscode web版(vscode online) 大名鼎鼎的vscode 推出了web版,也就是说可以在网页上进行编程了。 github地址:https://github.com/microsoft/v

    2024年04月26日
    浏览(35)
  • 【JavaScript】JavaScript 简介 ④ ( 解释型语言 和 编译型语言 | 计算机程序本质 | 编译器 和 解释器 )

    计算机 的 程序 是在 CPU 上执行的 , CPU 上执行的只有匹配该 CPU 的机器码指令 , 不同类型的 CPU 执行的 机器码指令 格式不同 , X86 和 ARM 执行的 机器码 指令格式是不同的 ; 机器码指令 是 二进制的 , 所有在 计算机 上执行的程序 , 都是 若干 二进制机器码 的集合 ; 计算机 只能执

    2024年03月22日
    浏览(37)
  • 嵌入式C语言自我修养《GNU C编译器扩展语法》学习笔记

    目录 一、C语言标准和编译器 二、指定初始化 三、宏构造“利器”:语句表达式 四、typeof与container_of宏 五、零长度数组 六、属性声明:section  七、属性声明:aligned  C语言标准的发展过程: ● KR C. ● ANSI C. ● C99. ● C11. 指定初始化结构体成员:         和数组类似,

    2024年02月08日
    浏览(41)
  • 【C语言&C++编译器】VS2019离线安装版,附详细安装步骤和安装包

    网盘链接下载地址:链接:https://pan.baidu.com/s/1mj6ssEcyc1DBKTmRr_uoxw?pwd=2023 提取码:2023 --来自百度网盘超级会员V1的分享 —BD网盘链接点击跳转 1.右键 VS2019.rar ,选择解压到 VS2019 2.打开 vs2019vs2019_offlin 找到 vs_setup.exe 并双击启动 3.弹出界面选择 继续 4.在界面勾选以下如图选项,注

    2024年02月11日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包