C语言自学《一》

Wesley13
• 阅读 702

初步了解C语言


C语言

C语言是一种功能强大、简洁的计算机语言,通过它可以编写程序,指挥计算机完成指定的任务等等

C语言标准

C语言由一个国际标准定义,目前最新的标准为C11,由于C11标准定义的一些语言元素是可选的,所以有些编译器并没有实现该标准的全部功能,C11标准英文说明文档

C语言标准库

标准库定义了编写C程序时常常需要的常量、符号和函数,还提供了大多程序员可都可能需要的功能,例如字符串处理或数字计算等等,还提供了基本C语言的一些可选扩展

头文件

头文件指定了C标准库在一系列标准文件,例如<stdio.h>定义了用于输入输出的宏和函数,从键盘上读取数据,将输出写入命令行时,需要包含该头文件

用C语言写经典的HelloWorld程序

<!-- lang: cpp -->
#include <stdio.h>    //标准头文件,使用输入输出函数如printf()时需要它
#define INCHES_PER_FOOT 12    //宏可以提供给预处理器的指令,来添加或修改程序中的C语句

/*
      每个C程序总是从main函数体开始执行
*/
int main(void){        
    printf("Hello,World!!\n");    //printf()是一个标准的库函数,它将函数名后面引号内的信息输出到命令行上
    printf("%d\n",INCHES_PER_FOOT);  
    return 0;    //返回0表示,程序正常终止,而返回非0值表示异常
}

下面开始分析像HelloWorld这样简单的C语言程序是如何运行的

创建C程序步骤

  1. 编辑
  2. 编译
  3. 链接
  4. 执行

编辑

编辑的过程就是创建和修改C程序的源代码
可以使用集成开发环境(IDE)、或者使用文本编辑器来创建文件(以".c"后缀名结尾),编写C源代码
比较常见的编辑器有Vim编辑器(Linux)、Emacs(windows&Linux)等等

编译

编译器可以将源代码转换成机器语言,在编译的过程中,会找出并报告错误,如果没有错误将编译产生以.o或.obj为后缀名的对象文件
编译过程包括两个阶段,第一个阶段称为预处理阶段,在此期间会修改或添加代码,第二个阶段是生成对象代码的实际编译过程
在非集成开发环境下,如果想要编译C源代码文件,需要使用命令:cc -c myprog.c

链接

链接器(linker)将源代码文件中由编译器产生的各种对象模块组合起来,再从C语言提供的程序库中添加必要的代码模块,将他们组合成一个可执行的文件,链接器也可以检查和报告错误,例如引用了一个根本不存在的库组件

执行

就是当成功完成了前述3个过程后,运行程序
如果上面3个步骤中任何步骤出错,都要返回到编辑步骤,重新修改源代码
点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
CuterCorley CuterCorley
3年前
C语言入门系列之1.C语言概述和上机运行简单C程序
一、C语言的发展过程C语言是在70年代初问世的。一九七八年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言,同时由B.W.Kernighan和D.M.Ritchit合著了著名的《THECPROGRAMMINGLANGUAGE》一书,通常简称为《K&R》,也有人称之为《K&R》标准。但是,在《K&R》中并没有定义一个完整的C语言标
Wesley13 Wesley13
3年前
Oracle ADG究竟是否收费?
!(https://oscimg.oschina.net/oscnet/faaf5c218b3045fe9a38ffa00c48a996.png)前两天微信群中,有位朋友问了,OracleDatabaseStandardEdition11gR2标准版支持activedataguard么?可能平时
Wesley13 Wesley13
3年前
C 如何判断编译器是否支持C90 C99?
参考:《CPrimerPlus》,StephenPrata著,姜佑译。ANSI/ISOC标准美国ANSI成立委员会X3J11,于89/90年,99年,11年,发布C标准:C89/C90,C99,C11。ANSI/ISO各版本C标准C标准描述经典C也称K&RC,87年K&R著作《C语言程序设计》,
Wesley13 Wesley13
3年前
Java中的native关键字
一. 什么是NativeMethod  简单地讲,一个NativeMethod就是一个java调用非java代码的接口。一个NativeMethod是这样一个java的方法:该方法的实现由非java语言实现,比如C。这个特征并非java所特有,很多其它的编程语言都有这一机制,比如在C++中,你可以用extern"C"告知C++编译器去
Stella981 Stella981
3年前
Sentinel 1.7.2 发布,完善开源生态及扩展性
多样化的适配模块到目前为止,Sentinel已覆盖微服务、APIGateway和ServiceMesh三大板块的核心生态,同时多语言已推出Java、C、Go三种语言的原生实现。!78636450_ef3a4b00_78da_11ea_89ce_c7a2b58c2deb(https://yqfile.alicd
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
3年前
C语言求1
问题:用C语言编写程序求11/31/51/7...示例:1include<stdio.h2voidmain(){3intn1;4floatsum0,a1;5while(a<100){6s
Stella981 Stella981
3年前
Nginx反向代理upstream模块介绍
!(https://oscimg.oschina.net/oscnet/1e67c46e359a4d6c8f36b590a372961f.gif)!(https://oscimg.oschina.net/oscnet/819eda5e7de54c23b54b04cfc00d3206.jpg)1.Nginx反
Wesley13 Wesley13
3年前
C++11新特性学习
1、什么是C11C11标准为C编程语言的第三个官方标准,正式名叫ISO/IEC14882:2011InformationtechnologyProgramminglanguagesC。在正式标准发布前,原名C0x。它将取代C标准第二版ISO/IEC14882:2003Progr