见习问题小结

时间:2022-04-23 20:06:58

error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
原因:*.c源文件的变量声明,必须在函数内容最前面


error C3861: “xx函数名”: 找不到标识符
原因:调用函数的所在源文件(*.c/cpp)与被调用函数的所在源文件(*.cpp/c),源文件类型不一致


error C4996: 'scanf' :This function or variable may be unsafe.

原因:VS2013已经不能使用scanf函数,而是改用更加安全的scanf_s
要用回scanf函数,则要把项目的 SDL检查 设为 否 (/sdl-)
scanf_s和scanf的区别在于输入字符和字符串是要进行边界检查。

例如:
char ch, char str1[10],str2[11];
scanf_s("%c",&ch,1);
scanf_s("%s",str1,10);
scanf_s("%s%s",str1,10,str2,11);


VS中,如果scanf/printf书写的类型与变量类型不一致,会出现数据为0的情况

例如:
float tmp;
scanf("%d",&tmp);	//1
printf("%f",tmp);	//0.000000

scanf("%f",&tmp);	//1
printf("%d",tmp);	//0
 


做一个供所有*c/cpp共用的全局变量
1、在头文件*h先声明为extern变量
2、在其中一个源文件中声明为全局变量