C语言简介:

BCPL->newB->C->UNIX->Linux->gcc

C语言专门编写操作系统的语言,所以天生适合对硬件编程,也以运行速度快著称,也非常适合实现数据结构和算法。

由于出现时间过早,有很多缺陷,也没想普通人会使用C语言编程,因此存在着些陷井,但前辈总结了一些避免的经验《C语言陷井和缺陷》。

自由源于自律。

C89语法标准,也是gcc默认的语法标准。

C99语法标准,对C语言的扩展和增强 std=gnu99。

C11语法标准,全新的升级。

第一个C程序:

#include

程序员所编写的代码不是标准的C代码,需要一段程序反它释放成标准的C代码,负责翻译的程序叫预处理器,翻译的过程叫预处理,被释翻译的代码叫预处理指令,以#号开头的都是预处理指令。

#include 的功能就把一个头文件导入到当前文件。

#include "xxx.h" 先当前路径下加载xxx.h文件,如果没有再从系统指定的 路径下加载xxx.h文件。

#include <> 从系统指定的路径下加载xxx.h文件。

操作系统通过设置环境变量来指定加载头文件的路径。

stdio.h

头文件:以.h结尾,里面存储是一些辅助性的代码,绝大多数是函数的声明(也就是函数的开头)。

源文件:以.c结尾,里面记录的是功能性的代码。

C语言标准委员会为C语言以函数形式提供了一些基础功能,这些函数被封装在libc.so库文件中。

有很多头文件负责对libc.so进行说明,stdio.h就是其中一个,常用的还有stdlib.h、string.h。

stdio.h负责对输入输出功能的函数进行说明,standard input output。

int main()

{

printf("Hello World!\n");

return 0;

}

main函数:

C语言以函数以单位管理代码,一个函数就一段具有某项功能的代码段。

main函数是程序的执行入口,有且只有有一个。

int 是一种数据类型,它表示main的执行结果是一个整数。

return 功能有两个:1、结束函数的执行 2、返回一个数据给函数的调用者

main函数由操作系统调用,它的返回值给了操作系统,反映了该程序是怎么结束的,通常有三种:

正数 出现异常

0 一切正常

负数 出现错误

echo $? 查看上一程序main函数的返回值。

printf/scanf是标准库中的函数,负责输入、输出数据,用来调试程序。

转义字符:键盘上没有一些符号,有一些特殊字符来表示,这些特殊字符叫转义字符,\n就是其中一个。

\n 换行

\r 回到行首

\t 制表符,对来自动对齐数据

\a 铃响

%% 显示一个%

\\ 表示一个\

\b 退一个字符

C语言以分号作为一行代码的结束,使用大括号划分代表区域。

编译器:

负责把人能看懂的记录代码的文本文件,翻译成计算机能看懂二进制文件,由预处理器、编译器、链接器组成。

gcc是GNU社区为了编译Linux代码而开发一款免费的编译器,默认采用C89语法,-std=gnu99可以设置C99语法。

常用的参数:

-E 显示预处理结果

-c 只编译不链接

-o 设置编译结果的名字

-I 指定头文件的加载路径

-S 生成汇编代码

-l 指定要使用库,-lm 使用数学库

-Wall 以严格的标准来检查代码,显示更多的警告提醒

-Werror 把警告当错误处理

-std 指定编译语法标准

C代码变成可执行程序的过程:

1、预处理 把源文件翻译成预处理文件

gcc -E code.c 显示预处理结果

gcc -E code.c -o code.i 生成以.i结尾的预处理文件

2、编译 把预处理文件翻译成汇编文件

gcc -S code.i 生成以.s结尾的汇编文件

3、汇编 把汇编文件翻译成二进制的目标文件

gcc -c code.s 生成以.o结尾的目标文件

4、链接 把若干个目录文件合并成一个可执行程序

gcc a.o b.o ... 默认生成一个a.out的可执行程序

C文件类型:

.h 头文件

.h.gch 头文件的编译结果,它会被优先使用

.c 源文件

.i 预处理文件

.s 汇编文件

.o 目标文件

.a 静态库

.so 共享库

来源:https://www.cnblogs.com/Nxet/p/13266210.html

c语言中规定的标准文件,标准C语言相关推荐

  1. c语言中申请内存并初始化,c语言中结构体的定义、初始化及内存分配

    #include struct person { char *name; int age; }; int main() { //结构体可以定义在函数内,也可以定义到函数外 //相当于全局变量与局部变量 ...

  2. 【C语言督学训练营 第二天】C语言中的数据类型及标准输入输出

    文章目录 一.前言 二.数据类型 1.基本数据类型 ①.整形 ②.浮点型 ③.字符型 2.高级数据类型 3.数据分类 ①.常量 ②.变量 三.标准输入输出 1.scanf 2.printf 四.进制转 ...

  3. c语言中随机选择函数,怎样让c语言中的随机函数真正随机?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 在C语言函数库中包含了一个产生随机数的函数: int rand( void ); 在函数库中对这个函数的说明是: The rand function re ...

  4. c语言中非法使用void类型_C语言中的数据类型

    为什么需要介绍数据类型 学习语言编程,不用急着写代码,先搞懂基本概念.有了基本概念后,然后再考虑在不同的语言中是如何表达的.不同语言无非就是表达方式不一样而已,万变不离其宗. 每一门语言开始部分中总是 ...

  5. 指针在c语言中的运用,怎么理解C语言中的指针,如何运用?

    恰好我之前写了一系列介绍 C 语言的文章,介绍了什么是指针,以及为什么要使用指针,下面摘录一部分,感兴趣的话,可以点我了解更多. 什么是 C语言指针? 不同的数据类型的主要区别在于占用的存储空间不同. ...

  6. c语言中字符占用的存储单元,C语言知识点第1章.doc

    C语言知识点第1章 C语言知识点总结(二) 第八节 字符字符常量定义:一对单引号括起来的一个字符.如'A'.'a'.'9'相应字符对应的ASCII编码值(见附录四)字符常量占用一个字节的存储单元(一个 ...

  7. c语言中有关随机数的程序,C语言中随机数相关问题

    用C语言产生随机数重要用到rand函数.srand函数.及宏RAND_MAX(32767),它们均在stdlib.h中进行了声明. int rand(void);//生成一个随机数 voidsrand ...

  8. c语言中的除号什么作用,c语言中除号用什么表示

    前言继承是OOP设计中的重要概念.在C++语言中,派生类继承基类有三种继承方式:私有继承(private).保护继承(protected)和公有继承(public).一.继承规则继承是C++中的重要特 ...

  9. c语言中数组部分输入赋值,c语言scanf对数组赋值

    c语言动态数组赋值,,c语言结构体数组赋值,c语言scanf对数组赋值 c语言数组动态赋值,<手把手教你学51单片机-C语言>之六 中断与数码管动态显示,c语言结构体数组赋值,c语言sca ...

最新文章

  1. 如何区分惯性器件的零偏误差?
  2. mysql 区分大小写(大小写敏感)配置
  3. python程序设计——函数设计与调用
  4. 转 使用putty从linux主机上面往windows主机下面拷贝文件
  5. 无内鬼,来点ICML/ACL审稿人笑话
  6. eclipse theia_Eclipse的Theia发布,缺少KubeCon,还有更多行业趋势
  7. ionic ios查看大图报错 the file to show is not valid image,or could not be loaded
  8. 2016年6月份那些最实用的 jQuery 插件专辑
  9. w ndows10怎么没体验指数,Win10没有“Windows体验指数”功能怎么进行系统评分【图文】...
  10. Echarts 3使用
  11. ​Python优化机制:常量折叠
  12. js实现千位分隔符运算
  13. scrum立会报告+燃尽图(第二周第三次)
  14. 2021年煤矿井下爆破考试内容及煤矿井下爆破考试资料
  15. 基于Cortex-M7内核STM32F767NIH6,STM32F767VGT6,STM32F767VIT6嵌入式技术资料
  16. 手把手教你从零搭建深度学习项目(附链接)
  17. linux混合命令_十多个命令行混合
  18. Heartbleed心脏出血漏洞原理分析
  19. django基于python的图书馆管理系统--python-计算机毕业设计
  20. HTML文件转JSP文件

热门文章

  1. 技术干货 | 源码解析 Github 上 14.1k Star 的 RocketMQ
  2. 中台,很多人理解的都不对
  3. Dragonfly成为CNCF孵化项目,我们与基金会首位华人TOC聊了聊
  4. Gartner 企业级网络设备市场份额报告:阿里云负载均衡增速全球第一
  5. “智慧停车+智慧交通”提高市民出行效率和体验
  6. Mars——基于矩阵的统一分布式计算框架
  7. [高速通道进阶一]如何理解高速通道的就近接入和一点接入连接全球
  8. 测试之道--阿里巴巴八年测试专家倾情奉献
  9. 实锤!Python 真没你想的那么简单…
  10. 对话阿里云:开源与自研如何共处?