linux命令编译C语言程序
C语言简介:
BCPL->newB->C->UNIX->Linux->gcc
C语言专门编写操作系统的语言,所以天生适合对硬件编程,也以运行速度快著称,也非常适合实现数据结构和算法。
由于出现时间过早,有很多缺陷,也没想普通人会使用C语言编程,因此存在着些陷井,但前辈总结了一些避免的经验《C语言陷井和缺陷》。
自由源于自律
C89语法标准,也是gcc默认的语法标准。
C99语法标准,对C语言的扩展和增强 std=gnu99。
C11语法标准,全新的升级。
第一个C程序:
#include <stdio.h>
程序员所编写的代码不是标准的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 共享库
感谢关注~~会持续、定期更新
linux命令编译C语言程序相关推荐
- printf如何消后续0_Hello World背后的故事:如何在Linux上编译C语言程序
欢迎访问我的网站查看原文: https://lulaoshi.info/blog/2020/05/31/compile-c-hello-world-on-linux.htmllulaoshi.inf ...
- linux中编译C语言程序
1.首先安装gcc编辑器 yum install gcc* -y 2.编写C语言程序 [root@test ~]# vim aa.c #include<stdio.h> int main( ...
- 使用make命令编译C语言程序,c, c++用makefile编译工程 - 1
基本思路: 最外层有三个文件: Makefile, Make.share, Make.include. 每个工程目录中都有一个Makefile文件. 其中最外层的Makefile是外壳部分.需要调用者 ...
- Linux GCC简明教程(使用GCC编译C语言程序)
文章目录 Gedit 编辑器 GCC 编译器 1) 生成可执行程序 2) 运行可执行程序 完整的演示 分步骤编译 1) 编译(Compile) 2) 链接(Link) 市面上常见的 Linux 都是发 ...
- deepin终端编译c程序_大神支招 如何在Linux下运行C语言程序
刚入门学习C语言程序的小伙伴比较常遇到的其中一个问题是:如何在Linux下运行C语言程序.今天针对这个热门问题,小编为大家准备了详细的教程! 小编先给大家普及一些关于C语言程序的基本常识:首先大家要清 ...
- linux终端输出c语言程序,Linux终端程序用c语言实现改变输出的字的颜色
颜色代码: 格式: echo "\033[字背景颜色;字体颜色m字符串\033[0m" 例如: echo "\033[41;36m something here \033 ...
- 怎样用gcc编译c语言,使用GCC编译C语言程序
使用Eclipse CDT开发C语言程序,虽然使用很方便,效率也很高,但是它向我们隐藏了很多细节.虽然大多数时候这并不影响我们的开发,但是当我们需要对程序的编译链接过程进行更加特殊的控制,以获得可以满 ...
- c语言在linux下运行程序设计,如何在Linux下运行C语言程序
如何在Linux下运行C语言程序 C语言是一个有结构化程序设计.具有变量作用域(variable scope)以及递归功能的过程式语言.以下是小编为大家搜索整理的如何在Linux下运行C语言程序,希望 ...
- linux平台编译运行c++程序
linux平台编译运行c++程序 引言 嵌入式开发的火热引发了不少程序员对Linux的兴趣.那么如何在Linux平台编译并运行c++程序呢? 正文 Linux平台开发运行C++程序大体流程与Windo ...
最新文章
- PHP 简单的数字过滤函数
- mysql中两种备份方法的优缺点_Mysql两种存储引擎的优缺点
- 【考试战报】ORACLE OCP 19C考试通过
- ASUS WL-500W企业级无线路由器试用
- SAP Data Intelligence Graph使用浏览器访问的url规范
- GetAdaptersInfo获取MAC地址
- c++基础学习(04)--(函数、数字、数组、字符串)
- 13产品经理要懂的-人性的恶要怎么利用
- Nginx提供静态内容
- 自定义生成器函数模拟Python内置函数filter()
- Deformable ConvNets自己的理解
- 在 html 中用加色法混合颜色
- 2022年事件驱动策略研究报告
- 20162327WJH Android开发程序设计实验报告
- 初体验微信小程序记事本
- win10背景色改成豆沙绿 锁屏后失效修改方式
- python学习记录--转义字符 字符串 特殊参数
- matlab对稀疏矩阵求特征值,使用ARPACK查找稀疏矩阵的特征向量和特征值(称为PYTHON,MATLAB或FORTRAN子例程)...
- 理论+实操 :部署YUM仓库以及NFS资源共享服务————理论讲解
- 软件工程中软件需求分析
热门文章
- python中object转为float_object格式怎样无损转换成float64格式
- svm分类器训练详细步骤_「五分钟机器学习」向量支持机SVM——学霸中的战斗机...
- STL源码剖析 数值算法 copy_backward 算法
- codeforces 122A-C语言解题报告
- 云计算技术背后的那些天才程序员:KVM之父Avi Kivity
- Visual C++利用Intel C++ 编译器提升多核性能与多媒体指令支持获取更高的程序效率与缩小程序体积
- 上传 jar 包到 nexus3、上传本地 jar 包到 maven 私服
- 解决- SecureCRT上运行 linux vim 命令中文出现乱码
- 毕业半年,码过5个城市
- Strategy 策略模式