c语言代码格式的简单介绍
C语言是大部分人接触的第一门计算机语言,虽然很多学校将C作为一门初始语言,但是其难度还是有的。计算机只具有一维思想,我们需要通过计算机语言将二维或三维的问题或者现象转化为一维,让计算机执行。这个转化过程就是难度所在。
本文只是对c代码进行一个简单的介绍:
一段C的简单代码
#include <stdio.h> //预处理指令
int main ( ) //main函数,(void修饰无return,其余类型修饰必须有return)
{ //函数开始标志printf("Helloword !"); //{}大括号内所有的代码都称为函数体return 0; //函数返回值(刚开始写0即可,在函数部分会开始改变)
} //函数结束标志在这里插入代码片
初学者并不懂这段代码格式为什么需要这样去写,单纯的只记住这个格式,个人认为,在学习过程中,先应清楚为什么会这样,再去学习
为什么程序开头要写#include:
首先要了解C语言的三个文件 .c文件 (源文件) .o文件 (目标文件) .exe文件(可执行文件)
.c文件 | 我们自己在vc上写的代码 |
---|---|
.o文件 | .c文件经过编译生成 |
.exe文件 | .o文件经过链接生成 |
目标文件和可执行文件必须经过编译链接才可生成,这也就是为什么要在vc6.0中点编译和链接按钮,更新一些的开发环境,直接用ctrl+F5即可代替执行。
但是,编译和链接又做了什么事呢
编译阶段
- 将源代码中#include<stdio.h>其中的内容替换至源代码中。C开发者写的stdio.h的代码有近一千行,我们在调用时,只需写此一行代码,就囊括了开发者写的功能
- 删除注释,也就是用空格替换,//符号后的内容
- #define,通俗来说就是我们自己定义的预处理指令,#include是开发者定义的预处理指令
#开头的都是预处理指令,在编译阶段中的预处理阶段执行,如上图(预处理等价于预编译)。 - 经过上述三步,将c代码翻译成汇编代码
链接阶段
- (生成的.o文件经过链接器的捆绑,形成一个单一而完整的可执行程序,通时引入标准c库函数中任何被该程序所用到的函数)
- 将汇编代码翻译成二进制代码,也就是机器指令,也就是010101一串二进制
- 编译和链接并不止以上所写,对于初学者来说,了解这些已经足够。
为什么是<>中写的是stdio.h:
我们所使用的printf函数是开发者在stdio.h中定义的,当我们调用这个头文件时,vc识别到main函数中有printf,会自动将开发者实现的printf功能提供给我们使用,如果我们不写stdio.h,那么我们在main中写的printf函数就会报错,系统无法识别printf是什么意思。
函数(Java中称为方法);
函数可以说是实现代码功能步骤的一个集合,一个c程序只有一个main函数,我们的编译器在识别到main后,从此处开始执行。
- main前的int是函数的返回类型,若此处int改为void,则无返回值,也就是无return 0;这个语句。
- main后的()是一个操作符,()告诉vc编译器,它前面的main是一个函数。printf后的()同理;
- 操作符是c语言中一个重要的部分,它与各字母结合有着不同的意义
我们可以通过一个特定的指令,重新定义一个程序的函数入口
#pragma comment (linker, "/entry:fun")
//此时定义了一个新入口,fun函数就可以充当main函数的功能,在此指令下编译程序不会报错int fun ()
{printf("1111\n");return 0;
}
以后学习数组时,int arr[5]中,[ ]这也是一个操作符,说明[ ]前面叫做arr的字母是一个数组。
以上只是为初学c语言,对代码格式存有疑惑同学的一个简单通俗解释,其中各个过程并非几句话可以说清。在程序编译及链接部分再详细论述。
c语言代码格式的简单介绍相关推荐
- lzo的正确c语言代码,LZO 使用跟介绍
LZO 使用和介绍 LZO说明 摘要 LZO 是一个用 ANSI C 语言编写的无损压缩库.他能够提供非常快速的压缩和解压功能.解压并不需要内存的支持.即使使用非常大的压缩比例进行缓慢压缩出的数据,依 ...
- 英文字典设计c语言代码,一种简单的英文词典排版系统
<一种简单的英文词典排版系统>由会员分享,可在线阅读,更多相关<一种简单的英文词典排版系统(20页珍藏版)>请在人人文库网上搜索. 1.中国地质大学(武汉)C语言课程设计论文学 ...
- Go语言的流程结构简单介绍
文章目录 流程结构 流程结构 if if的基本表达 特殊用法 switch swith基本用法 fallthrough Type Switch for 基础语法 for语法2 for的range格式 ...
- unity贪吃蛇c 语言代码,unity实现简单贪吃蛇游戏
本文实例为大家共享了unity实现贪吃蛇游戏的详细代码,供大家参考,详细内容如下 首先创建一个头部,编写脚本利用WASD控制头部的移动. Vector3 up=new Vector3(0,1,0); ...
- mcem r语言代码_一个简单文本分类任务-EM算法-R语言
一.问题介绍 概率分布模型中,有时只含有可观测变量,如单硬币投掷模型,对于每个测试样例,硬币最终是正面还是反面是可以观测的.而有时还含有不可观测变量,如三硬币投掷模型.问题这样描述,首先投掷硬币A,如 ...
- PEP 8 -- Python代码格式规则
PEP 8 – Python代码格式规则 PEP: 8 标题: Python代码格式规则(Style Guide for Python Code) 作者: Guido van Rossum (guid ...
- 自动化工具之Appium工具简单介绍
背景 自动化,性能测试,接口测试,开发平台等工作,到底测试的价值在哪里,其实价值来源不断充实与为大众服务,今天简单介绍ui小工具appium攻击. 简单介绍 Appium 是一个自动化测试开源工具,支 ...
- 线性回归模型及R语言代码
基础理论: 线性回归模型是一个简单而有效的模型,曾经在过去的一个世纪中在统计界得到主要的应用. Yi(i=1,-n)是响应随机变量,(x1i,-xpi)是n个实测数据,p是解释变量的数量.€i是残差, ...
- Spring EL 表达式的简单介绍和使用
文章目录 1. 简单介绍 1.1. 什么是 Spring EL 1.2. 为什么要使用 Spring EL 1.3. 如何使用 Spring EL 2. 简单使用 3. EL 表达式解析引擎 3.1. ...
- Smali语法简单介绍
Smali语言其实就是Davlik的寄存器语言: Smali语言就是android的应用程序.apk通过apktool反编译出来的都有一个smali文件夹,里面都是以.smali结尾的文件,文件的展示 ...
最新文章
- linux基础-网络基础知识篇
- Word中使用代码高亮插件
- 21_Android中常见对话框,光传感器,通过重力感应器编写出指南针应用,帧动画,通过Jav代码的方式编写补间动画,通过XML的方式编写补间动画
- sde用户下使用sqlplus登录错误ORA-12547: TNS:lost contact
- linux cmake变量,linux – CMake错误:此项目中使用了以下变量,但它们设置为NOTFOUND...
- 海量数据挖掘MMDS week3:社交网络之社区检测:高级技巧
- thinkphp5.0 session驱动方式问题汇总
- 新建web项目上传SVN服务器
- 软件系统质量属性可用性-稳定性-可靠性-连续性辨析-架构权衡分析方法
- 拳皇世界6月13服务器维护,拳皇世界闪退怎么办 对症下药马上好
- 别被你的双眼所欺骗!100张神奇的视觉欺骗图
- 内核tty框架_串口_tty_shell的关系
- MySQL中 反引号、单引号 和 双引号 的区别
- 2020年十大返利app排行榜
- 如果不坚持,到哪里都是放弃
- windows下mysql-5.7.30-winx64解压安装步骤
- 黑苹果10.10.3手动开启SSD的TIRM提高硬盘效率
- python3-opencv库(4)--图片像素运算,利用加权叠加调节图像对比度和亮度
- python 知识图谱 推理_知识图谱推理与实践 (2) -- 基于jena实现规则推理
- 2022年一级建造师建设工程项目管理考试模拟试题卷及答案