c语言中规定的标准文件,标准C语言

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/523295.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot入门到精通_第3篇 _应用组件分析

接上一篇&#xff1a;SpringBoot入门到精通_第2篇 _1分钟实战需求项目 https://blog.csdn.net/weixin_40816738/article/details/101095964 文章目录一、SpringBoot应用组件分析一、SpringBoot应用组件分析 组件名称说明pom.xml依赖集成整合第三方依赖启动类&#xff1a;注解根…

企业如何快速响应用户需求 且看云徙“数据+业务”双中台化简为繁

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 |刘丹“自然界生存下来的&#xff0c;既不是四肢最强壮的&#xff0c;也不是头脑最聪明的&#xff0c;而是最有能力适应变化的物种。”这句至理名言放在商业文明的今天依然得以适用&#xff0c;有能力适应技术快速发展、业务需…

c语言程序设计的日志,C语言程序设计教学日志.docx

高级语言程序设计教学Fl志1记录人&#xff1a;梁云川章节&#xff1a;1.1熟悉c语言上机实验环境记录类型&#xff1a;课后反思记录&#xff1a;主楼803机房边操作边讲解C语言程序设计上机实验环境的工作界面、功能菜单&#xff0c;并 通过一个简单实例演示建立一个C语言程序的全…

SpringBoot入门到精通_第4篇 _开发三板斧

接上一篇&#xff1a;SpringBoot入门到精通_第3篇 _应用组件分析 https://blog.csdn.net/weixin_40816738/article/details/101096218 文章目录一、SpringBoot 开发三板斧1. 简述2. 案例2.1. 整合springDataJpa2.2. 启动类加注解2.3. 写配置一、SpringBoot 开发三板斧 1. 简述…

微服务架构之「 下一代微服务 Service Mesh 」

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 奎哥来源 | 不止思考Service Mesh 被大家称为下一代的微服务&#xff0c;是微服务领域的一颗新星&#xff0c;被大家讨论的非常多。我在大家的讨论中&#xff0c;还看到有人说 “目前的微服务架构我都没学会呢&#xff0c;现…

C语言编程中线性表的顺序表示,数据结构C语言实现----线性表的顺序表示和实现...

线性表的顺序表示指的是用一组地址连续的存储单元依次存储线性表的数据元素。在高级程序设计语言中&#xff0c;通常都用数组来描述数据结构中的顺序存储结构。同时&#xff0c;由于线性表的长度可变&#xff0c;且所需最大存储空间随问题不同而不同&#xff0c;在C语言中可用动…

SpringBoot入门到精通_第5篇 _SpringBoot Actuator监控

接上一篇&#xff1a;SpringBoot入门到精通_第4篇 _开发三板斧 https://blog.csdn.net/weixin_40816738/article/details/101097161 文章目录一、 SpringBoot Actuator 概念1. 是什么&#xff1f;2. 如何整合SpringBoot Actuator&#xff1f;二、 SpringBoot Actuator 实战2.1.…

反转!美光、英特尔等多家美企恢复对华为供货;首例云服务器存储侵权案改判,阿里云不担责;英国政府拟严格审查Libra……...

戳蓝字“CSDN云计算”关注我们哦&#xff01;嗨&#xff0c;大家好&#xff0c;重磅君带来的【云重磅】特别栏目&#xff0c;如期而至&#xff0c;每周五第一时间为大家带来重磅新闻。把握技术风向标&#xff0c;了解行业应用与实践&#xff0c;就交给我重磅君吧&#xff01;重…

从达标到卓越 —— API 设计之道

摘要&#xff1a; 新技术层出不穷&#xff0c;长江后浪推前浪。在浪潮褪去后&#xff0c;能留下来的&#xff0c;是一些经典的设计思想。 在前端界&#xff0c;以前有远近闻名的 jQuery&#xff0c;近来有声名鹊起的 Vue.js。这两者叫好又叫座的原因固然有很多&#xff0c;但是…

SpringBoot入门到精通_第6篇 _必知必会

接上一篇&#xff1a;SpringBoot入门到精通_第5篇 _SpringBoot Actuator监控 https://blog.csdn.net/weixin_40816738/article/details/101097428 文章目录一、SpringBoot 配置管理1. 配置管理3种方式1.1. 以.properties为后缀名1.2. 以.yml/.yaml为后缀名(建议使用)2. Spring …

c语言传递多个参数给线程,关于ssl多线程参数的传递

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼void *sock_read(int *client) //short event,void *arg{char buf[1024];memset(buf,0,1024);int dSSL_read(*client,buf,1024);//接收客户端的数据包perror("SSL_read");printf("d%d\n",d);}static void sock…

“刺激的”2017双11 阿里安全工程师首度揭秘智能风控平台MTEE3

摘要&#xff1a; “太刺激了&#xff0c;太刺激了&#xff01;如果那个48%真出问题&#xff0c;整个安全部的双11就可能是3.25&#xff01;” “太刺激了&#xff0c;太刺激了&#xff01;如果那个48%真出问题&#xff0c;整个安全部的双11就可能是3.25&#xff01;”知命推了…

你相信逛B站也能学编程吗?

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 徐麟来源 | 数据森麟作者&#xff1a;徐麟&#xff0c;某互联网公司数据分析狮&#xff0c;个人公众号数据森麟&#xff08;id&#xff1a;shujusenlin&#xff09;前言很多人提到B站&#xff0c;首先想到的就会是二次元或者…

创建小程序

注册账号&#xff1a;https://mp.weixin.qq.com/

spring boot集成mybatis和springsecurity实现权限控制功能

上一篇已经实现了登录认证功能&#xff0c;这一篇继续实现权限控制功能&#xff0c;文中代码只贴出来和上一篇不一样的修改的地方&#xff0c;完整代码可结合上一篇一起整理spring boot集成mybatis和springsecurity实现登录认证功能-CSDN博客 数据库建表 权限控制的意思就是根…

基于云上分布式NoSQL的海量气象数据存储和查询方案

摘要&#xff1a; 气象数据是一类典型的大数据&#xff0c;具有数据量大、时效性高、数据种类丰富等特点&#xff0c;每天产生的数据量常在几十TB到上百TB的规模&#xff0c;且在爆发性增长。如何存储和高效的查询这些气象数据越来越成为一个难题&#xff0c;本文针对气象领域中…

c语言 若未给全局变量赋初值,自我测试练习参考-答案.doc

.《C语言程序设计案例教程》自我测试练习参考答案(主编&#xff1a;王明福)第1章 初识C语言一、单选题1. 下面叙述错误的是( A )。A&#xff0e;C程序中可以有若干个main()函数B&#xff0e;C程序必须从main()函数开始执行C&#xff0e;C程序由若干个函数组成D&#xff0e;C程序…

现代IM系统中消息推送和存储架构的实现

摘要&#xff1a; 前言 IM全称是『Instant Messaging』&#xff0c;中文名是即时通讯。在这个高度信息化的移动互联网时代&#xff0c;生活中IM类产品已经成为必备品&#xff0c;比较有名的如钉钉、微信、QQ等以IM为核心功能的产品。当然目前微信已经成长为一个生态型产品&…

漫画:为什么程序员没有女友?

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 程序员小灰————— 五分钟后 —————ERNIE是百度开源深度学习平台飞桨&#xff08;PaddlePaddle&#xff09;推出的知识增强语义表示模型&#xff0c;通过海量数据建模词、实体及实体关系。相较于 BERT 学习原始语言信…

基于TableStore的数据采集分析系统介绍

摘要&#xff1a; 摘要 在互联网高度发达的今天&#xff0c;ipad、手机等智能终端设备随处可见&#xff0c;运行在其中的APP、网站也非常多&#xff0c;如何采集终端数据进行分析&#xff0c;提升软件的品质非常重要&#xff0c;例如PV/UV统计、用户行为数据统计与分析等。虽然…