第一个C语言程序

C++学习之路【1】:标C数据结构和算法

二、第一个C语言程序

1.基本语法解释

源文件(.c后缀),如:hello.c
头文件(.h后缀),如:stdio.h
c语言程序的绝大部分内容应该记录在以 .c 作为拓展名的文件里,这种文件叫做源文件。
c语言里还包含以 .h 作为拓展名的文件,这种叫做头文件。

/*
多行
注释
this is my first code
*/
#include<stdio.h>
int main(void){
	printf("hello world!\n");	//单行注释 \n表示换行
	return 0;	//main函数结束,指定main函数返回值为0
}

多行注释:/* 注释内容 */
单行注释://
头文件包含指令
预处理阶段会将头文件拷贝替换
#include <XXX.h> ——> XXX.h
< >,到系统目录找(适用于系统头文件)
#include “XXX.h”
" ",先到当前目录找,再去系统目录找(适用于自己编辑头文件)

c语言程序里每个计算步骤最后都必须用【分号】结束,每个分号结束的计算步骤叫做一条语句
c语言程序里绝大多数语句都应该写在大括号中间
c语言程序里大括号可以用来代表函数(函数可以看做一组语句)
c语言程序里必须包含一个叫做main的函数,这个函数叫做主函数(入口函数),程序从主函数(main)的第一条语句开始执行,当主函数里最后一条语句结束后整个程序结束。
一个程序中有且仅有一个main函数

关键字 — return
return两个作用:1.函数结束;2.指定返回值
函数结束的时候可以有一个数字表示它的执行结果,这个数字叫做函数的返回值
主函数应该有一个返回值,如果返回值是0表示程序希望计算机认为它正常结束了,否则(返回非0)表示程序希望计算机认为它出问题了

关键字 — int、void
如果函数有返回值就必须把返回值的类型名称写在函数名称前:
int main (xxx) { … }
int — main函数的返回值是一个整数
(xxx) — main执行的时候是否需要一些数据,数据称之为形式参数
int main (void) {…}:程序执行不需要其他数据
void:不需要

2.程序编译器

明确:计算机只可以识别二进制的内容,即0101001
意味着编辑好的c语言程序计算机无法识别,如果想要计算机执行程序,需要将程序转换为计算机可以识别的二进制的格式,整个转换过程叫做编译(可以类比为翻译)
转换过程需要使用到的工具称为编译器,gcc是Linux系统中常用的c语言编译器。

gcc hello.c

默认得到a.out
就是使用gcc编译器去编译hello.c源文件,最后得到二进制可执行文件a.out
./a.out 就是执行当前目录下的a.out(application output)可执行文件
可读性很差,任何的程序都会默认得到a.out(后面执行的会覆盖前面执行的)

gcc hello.c —> a.out
一共经历4个步骤(用户不可见):
在这里插入图片描述

(1)预处理:对源文件中以 # 开头的命令进行处理,输出以 .i 为拓展名的 xxx.i

gcc -E hello.c -o hello.i

-E:只对源文件执行预处理步骤
-o:指定生成的文件名
(2)编译:对预处理得到的 xxx.i 文件进行编译,生成汇编语言文件 xxx.s

gcc -S hello.i -o hello.s

-S:对文件进行编译操作
(3)汇编:将 xxx.s 文件翻译为二进制语言指令,然后将这些指令打包成为目标文件的文件,后缀为xxx.o,他是一种二进制文件

gcc -C hello.s -o hello.o

-C:只进行汇编操作
(4)链接:将多个目标文件和标准库函数合并为一个可执行目标文件保存在磁盘中

gcc hello.o -o hello

链接可以简单理解为和大神写好的代码合并在一起成为可执行文件
在这里插入图片描述
(1)~(4)比较细致,但实际使用不建议,比较麻烦

  • 30
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值