c与指针(一)

前言
跳过去,先看语法。说深的也看不出懂。别在这个帖子发问题。有个教学贴。
1.记住编辑器和编译器不一样。
2.c语言程序形成的过程。 源代码—>编译文件—>连接文件—>可执行程序。
3.预处理命令
包含c语言的标准库文件用<>例如include<stdio.h> 用自己的文件用"" 例如include"自己的文件.h" 剩下的以后说
4.主函数 统一先写成int main(void)
5.变量和函数名定义 用英文,不会英文用拼音,除非就用一两次,否则别出现abcdefg...

以上是简单程序的默认规定。

基本概念(一)环境
在ANSIC的任何一种实现中,存在两种不同的环境。一种是翻译环境,一种是执行环境。
这两个东西可以不再一台电脑上面,甚至于是不同电脑的不同操作系统上面。
翻译:
翻译阶段就是组成一个程序的源文件通过编译过程分别转换为目标代码。然后各个目标文件有链接器捆绑在一起形成一个完整的可执行程序。
编译过程本身也有几个阶段组成。预处理~~这个会在预处理器上执行一些文本操作。就是将一些数值定义为固定的东西。(宏定义)得到要使用的文件,或者说是库。(include)
然后就是解析,就是判断源代码的语句的意思。这个时候会返回大量的语法错误和警告。虽然警告可以忽略,但最好不要。随后就会产生目标代码。这个是机器指令的初步形式,用于实现程序的语句。有时候会优化的哦~~然后就是编译。
编译和链接。编译之后产生的文件是编译文件。dos系统中是.obj,unix中是.o~~
链接就是将多个编译文件链接在一起。

执行
程序的执行过程也有很多个阶段。首先,程序要存入内存中。在操作系统中,这个任务有操作系统完成。那些不是存储在对战中的尚未初始化的变量将在这个时候得到初始值。在独立的环境中,程序的载入必须有手工安排。也可能是自己写个代码搞定。
接着,程序开始执行。在操作系统中,有一个启动程序于程序连接在一起,负责梳理一定日常事务,如收集命令行参数,接着就会调用main函数。(所以一个程序只能有并且必须有一个main函数。)
然后开始执行程序代码,程序将使用一个运行时的对战,他用于存储函数的局部变量和返回地址。这个也可是使用静态(static)内存。这个值会一直存在,直到用户释放。
然后就只终止程序。 正常是main返回一个值。(这就是int main(void))。
特殊情况比较多。一般是中断,和操作系统联系紧密,不说了。

基本概念(二) 词法规则
词法规则好比是中文里面的成语。是什么就是什么,规则不能改。这个决定了源程序中的独立片段,比如一个表达式,这个称之为标记(token)
一个ANSIC程序由声明和函数组成。(可以理解为数据结构和算法)函数定了需要执行的工作,而声名则描述了函数和函数将要操作的数据类型。注释什么的随便写,关键是要要让别人看懂。(程序不是写给你自己看的,是写给计算机和比人看的。何况,自己看的时候看不懂挫败刚更强)。
字符
标准c语言没有规定c环境必须使用哪种特定的字符集,但是他规定字符集必须包括英语所有的大小写字母和数字0到0.以及!" $ % ' ( ) * + , . / : ; < > ? [ ] \ ^ { } | ~
换行符,用于标识源代码每一行的结束。
标准c语言还定义了几个三字母词。这个是指几个字符的序列合起来表示另一字符。(我也不知道这个蛋疼的定义是做什么用的。我就不列出来了,想知道的百度)
然后就是转义字符或者说是转义序列。
前几天有人问我说linux上面不能识别\a。这个就是由于,linux上面gcc不知支持这些转义字符。主要是\a.其余的还好点。
建议转义字符也去百度。这些都是基础的要知道的,可以不会背,但是要知道有。

注释
注释/*开始 */结束。注释不能嵌套,就是注释之中不能包含注释。具体解释在《c的陷阱与缺陷》中有。编译的时候,注释会被用空格代替,所以凡是可以出现空格的地方都可以写注释。
自由行使的源代码
c是一种自由形式的语言。没有什么规则规定什么地方必须写什么。(谭书里面死板套路就有点蛋疼。不过适合新手) 至于到底怎么写,就按照书上的代码写就行。不同的人习惯不一样,但都是以易读,简洁,美观为主。
标示符
标示符就是变量,函数、类型的名字。他们由大小写字母,数字和下划线组成,不能数字开头。大小写不一样。标准c语言,编译器会忽略31个字符以后的字符。就是说你不要起名字超过31个字符。 同时允许编译器对于表示外部的名字做限制。外部的名字就是其他文件中的名字。 最后就是保留字,起名字肯定不能用auto,main,int,if。。。。保留字要想知道全的话,百度吧。

程序的形式
一个C程序可能保存于一个或多个源文件中,虽然一个源文件可一个包含超过一个的函数,但是每个函数都必须完整的出现于同一个源文件中。
就是说一个c程序可以被其他c程序调用,一个源文件可以有多个函数,但是每一个函数都要完整的出现在一个源文件。 说不清楚,不理解先留着。不做c语言的多文件编程,用不到。
程序风格
1、空行用于不同的逻辑代码段。 一般是两个函数之间会空一行,预处理命令之后会空一行
2、if和相关语句的括号是这些语句的一部分。就是说 括号用完以后,后面加个空格。
3、绝大多数操作符的使用,都会加空格。当然,空格的目的是为了易于读写,随便用,别恶 心就行。
4、嵌套与其他语句中的语句要缩进,用以显示层次。使用的Tab不是空格。
5、注释都是成块出现的,就是为了让人看起来不蛋疼。
6、函数的定义中,返回类型出现于独立的一行中,函数的名字则在下一行的起始处。
以上就是代码风格,尽量这样写,不这么写,我估计懒得看。蛋疼啊。
我加一条,就是变量名 见文识义 别起名字叫abcdefgh.....

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值