- 相关推荐
C语言中函数的区分有哪些
C语言的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发。以下是小编为大家搜索整理的C语言中函数的区分,希望能给大家带来帮助!
C语言中函数的区分有哪些
首先,这两个函数不是C标准库中的函数,
int getch(void) //从标准输入读入一个字符,当你用键盘输入的时候,屏幕不显示你所输入的字符。也就是,不带回显。
int getche(void) //从标准输入读入一个字符,键盘输入的时候,屏幕显示所输入的字符。带回显。
这两个函数包含在头文件conio.h中,需要记住的是conio.h不是C标准库中的头文件。Micorsoft 和 Borland的 C编译器提供了conio.h,用来创建控制台文本用户界面。一般在Windows系统下安装了VS、VC等,就可以包含conio.h头文件。但是一般在Unix、Linux系统中, / usr / include / 中都没有这个头文件。
getch和getche在等待用户从键盘输入的时候,用户按下一个键后,不需要按回车,程序自动往下执行。在Linux中,终端输入在缺省情况下是被“一锅端”的,也就是说整行输入是被一起处理的。通常,这是一种人们所希望的方便的办法,但它也意味着在读入数据时必须按一下回车键表示输入行结束后才能得到输入的数据。在游戏中,很多都提供了“老板键”,它的实现,就是利用了这两个函数。
其次,除了getch和getche,其他的都是C标准库中的头文件,包含在头文件stdio.h中。
int fgetc ( FILE xstream ); //从流stream中读一个字符。可以将标准输入stdin作为它的实参,这时候从标准输入读取一个字符。
int getc(FILE xstream); //和fgetc等效,由fgetc通过宏实现。
int getchar ( void );
//从标准输入stdin读入一个字符,程序等待你输入的时候,你可以输入多个字符,回车后程序继续执行。
//但getchar只读入一个字符
说明:
getc、getchar都是通过宏定义借助fgetc实现。如getchar的实现为,#define get) fgetc(stdin)。
char xfgets (char xstr, int num, FILE xstream);
//从流stream中读入最多num个字符到字符数组str中,当遇到换行符时、或读到num-1个字符时停止。
//自动加上空字符结尾
char xgets ( char xstr );
//从标准输入stdin读取一个字符串,遇到换行或结束时候终止。
//不同于fgets,他没有指定num,所以需要注意字符数组str的大小。
说明: fgets和gets之间没有宏定义的关系,彼此各自有自己的实现。蠕虫病毒的实现就是函数gets的“功劳”。gets函数的任务是从流中读入一个字符串。它的调用者会告诉它把读入的字符串放在什么地方。但是,gets()函数并不检查缓冲区大小,如果调用者提供了一个指向堆栈的指针,并且get()函数读入的字符数量超过了超过了缓冲区的空间大小,get()会愉快地将多出来的字符继续写入到堆栈中,这就覆盖了堆栈中原来的内容。如:
main()
{char line[512]; //在程序的堆栈上分配512个字符的空间...gets(line); //蠕虫病毒的入口,可以将恶意代码通过多出来的数据写入堆栈}
建议不要用getch和getche,因为它们不是C标准库中的函数。用它们写出的程序可移植性差,不同的编译器不保证可以包含conio.h。建议用fgets函数彻底替代gets函数。
另外,绝大多数的这些get函数,都有对应的put版本。
int fputc ( int character, FILE xstream );
int putc ( int character, FILE xstream ); //通过宏定义和fputc实现
int putchar ( int character );
//通过宏定义实现:#define putc) fputc(c, stdout)
int fputs ( const char xstr, FILE xstream );
int puts ( const char xstr );
说明:两者之间无宏定义实现关系。puts(const char xstr)近似等效于fputs(cosnt char xstr, stdout),不同点是前者还输出一个
最后,关于EOF
EOF是在stdio.h 文件中定义的符号常量,值
C语言认识
函数(Function)是一段可以重复使用的代码,这是从整体上对函数的认识。
C语言本身带了很多库函数,并分门别类地放在了不同的头文件中,使用时只要引入对应的头文件即可。
除了C语言自带的函数,我们也可以编写自己的函数,称为自定义函数(User-Defined Function)。自定义函数和库函数没有本质的区别,表现形式和使用方法一样,只是开发者不同而已。
这一章我们就来讲解如何编写和使用自己的函数。
参数
函数的一个明显特征就是使用时带括号( ),必要的话,括号中还要包含数据或变量,称为参数(Parameter)。参数是函数需要处理的数据,例如:
strlen(str1)用来计算字符串的长度,str1就是参数。
puts("C语言中文网")用来输出字符串,"C语言中文网"就是参数。
返回值
既然函数可以处理数据,那就有必要将处理结果告诉我们,所以很多函数都有返回值(Return Value)。所谓返回值,就是函数的执行结果。例如:
char str1[] = "C Language";
int len = strlen(str1);
strlen() 的处理结果是字符串 str1 的长度,是一个整数,我们通过 len 变量来接收。
函数返回值有固定的数据类型(int、char、float等),用来接收返回值的变量类型要一致。
【C语言中函数的区分有哪些】相关文章:
C语言中的重要概念有哪些12-11
c语言中time函数的用法03-20
C语言中strpbr()函数的用法03-19
C语言中isalnum()函数和isalpha()函数的对比04-01
C语言中friend友元函数详细解析04-01
C语言中返回字符串函数的实现方法03-19
C语言中void有什么作用03-15
C语言的缺点有哪些12-04
C++调用C函数的方法11-15