stdio简介
stdio是指standard input &output,即标准输入输出,往往是初学者首先接触的头文件。其中包含了很多库函数,包括输入输出、文件操作等。本文意在讲解#include开始后stdio.h会给你带来什么。
#include在做什么?
预处理器发现#include后,会尝试查看后面紧跟的文件名并把文件内容包含到当前文件中,可简单理解为复制了一个特殊文件。
通常有两种形式:
#include<stdio.h>//在标准系统目录中查找该文件,通常在
//查找系统自带的头文件时使用
#include"stdio.h"//首先在文件当前目录中查找该文件
//没找到则再查找标准系统目录
#include"/user/myhead/cOnly.h"//首先查找/user/myhead目录
从此开始,stdio.h就是你的了。你可以应用它定义的所有的函数、变量等,在不重名的情况下。
为什么不重名?
可以试试如果重名会怎么样。
//vs debug x64
#include<stdio.h>
char* printf(const char* arr){
return (char*)arr;
}
int main(void){
printf("hello world?");
return 0;
}
错误 C2668 “printf”: 对重载函数的调用不明确
报错了,它指出printf调用了两个函数,它不知道调用哪一个。这是重名会有的情况。
当然如果你足够幸运,运行如下代码,则会正常通过编译:
//VS debug x64或x86模式下
#include<stdio.h>
int printf(char arr) {
return arr;
}
int main(void) {
printf("hello world?");
return 0;
}
结果输出了“hello world?”(欢迎尝试),绕过了我设的陷阱。
怎么回事呢?等下一次更新吧。第一次写专栏,求大佬建议耶,共同进步吧!