《C语言程序设计》读书笔记(四)——函数与程序结构
来源:互联网 发布:淘宝商家入口 编辑:程序博客网 时间:2024/05/29 15:30
book
4.1
- 找出某一字符串在一段文本内的位置并返回
int strindex(char s[], char t[]){ int i,j,k; for(i = 0;s[i] != '\0';i++) //遍历初始位置 { for (j = i,k = 0;t[k] != '\0' && s[j] == t[k];j++,k++) ; if(k > 0 && t[k] == '\0') //t[k] == '\0'表示完全匹配 return i; } return -1; //遍历完成后没有找到匹配的}
4.4
- 外部变量或函数的作用域从声明它的地方开始,到其所在的(待编译的的)文件的末尾为结束。如果要在外部变量的定义之前使用该变量,或者外部变量的定义与变量的使用不在同一源文件中,则必须在相应的变量声明中强制性地使用关键字extern.
- 外部变量定义与声明
外部变量的声明英语说明变量的属性(主要是变量的类型),而那两定义除此之外还将引起存储器的分配。一个外部变量只能某个文件中定义一次,而其他文件可以通过extern声明访问它;下面给出变量定理和声明的例子:
//变量定义int sp;double val[MAXVAL]; //要说明数组的大小//变量声明extern int sp;extern double val[];
4.5
- 头文件的作用
由于一些共同使用的外部变量和函数在不同文件中被使用的时候需要被重新声明,所以可以将这些需要共同使用的变量和函数的 声明 放在同一个文件中,在需要用到这些函数的文件中只要将这个文件包含进来就可以直接使用,不必再在每个文件重新声明外部变量和函数。这个包含外部变量和共同使用的函数的文件就叫做头文件,包含头文件的操作叫#include<a.h>
。一般头文件只会存放外部变量和函数的声明,定义在各个.c文件中实现,因为函数的声明只能出现一次,如果定义放在头文件中,而这个头文件又被多个文件引用,那么容易出现重复定义的问题。
4.6
- 静态变量
声明一个变量为静态变量static
的作用在于限定该变量的作用区域。如对一个外部变量声明为静态变量表示该变量只能在声明的文件中使用,在其他文件中不能使用该外部变量。对一个函数中的变量声明为静态变量表示该变量只能在该函数的范围内使用。注意:在函数中声明的静态变量和函数内部变量的区别是静态变量始终存在于内存中,下次调用时存放在里面的值是上次调用完毕后的值;而内部变量在函数开始时被分配内存,在函数结束后内存被收回,下次调用重新分配内存。
4.9
- 初始化
在不进行人为初始化的情况下,外部变量和静态变量都被初始化为0,而内部变量和寄存器变量没有定义。外部变量和静态变量的初始化必须是 常量 表达式。
4.11.2
- 宏替换
宏定义可以带参数,不过要十分注意括号的添加,如#define square(x) (x)*(x)
中的括号不可省略,否则在计算square(a+1)时会发生错误
4.11.3
- 条件包含 #ifdef
在头文件的编写中,为了防止一个头文件被重复包含在同一个.c文件中,最好使用条件包含格式。
头文件被重复包含情况:
假设 a.h 和 b.h 中有 #include “c.h”语句,而在 main.c 中出现了#include “a.h” 和#include “b.h” 那么 v.h就属于在一个.c 文件中重复引用的情况。这时候就会用到如下格式的语句:
#ifndef B_H#define B_H//declarations#endif
0 0
- 《C语言程序设计》读书笔记(四)——函数与程序结构
- C语言程序设计--函数和程序结构
- C程序设计语言整理笔记(四)函数与程序结构
- C语言<四> 函数与程序结构
- The C Programming Language 第四章函数与程序结构 读书笔记
- TCPL(The C Programming Language)读书笔记 第四章 函数与程序结构
- 读书笔记:C程序设计语言,第四章:函数与程序结构 (含课后题全解)
- 函数与程序结构【重学C之四】
- Linux C语言程序设计(四)——枚举与结构体
- (三十一)C语言学习笔记(二)——函数与程序结构
- C函数与程序结构学习
- 第四章——函数与程序结构
- 函数与程序结构&数组与指针(C编程语言)
- C/C学习笔记/函数与程序结构
- C语言程序设计笔记(四)
- C语言程序设计入门(四)
- C程序设计语言(二)流控制,函数与程序结构
- C#——程序结构
- Python 列表性能测试
- POJ 3071 Football(概率DP)
- 【适配整理】Android 7.0 调取系统相机崩溃解决android.os.FileUriExposedException
- 第24节:关于继承和trait进阶
- 【死磕Java并发】-----J.U.C之并发工具类:CountDownLatch
- 《C语言程序设计》读书笔记(四)——函数与程序结构
- 在SQL Server中 新建登录用户 并指定该用户登录的数据库及权限
- Hash综述
- 455. Assign Cookies
- 【转】使用缓存的9大误区
- String内存申请图解
- ffmpeg源码简析(八)解码 av_read_frame(),avcodec_decode_video2(),avformat_close_input()
- 《剑指offer》004-替换空格(java实现)
- Ensure that you have installed a JDK (not just a JRE) and configured your JAVA_HOME system variable