一、非法字符
[Error] stray ‘\241’ in program
[Error] stray ‘\243’ in program
[Error] stray ‘\273’ in program
报错的意思是c/c++中的产生了编译错误。
该错误是指源程序中有非法字符,需要将非法字符去掉。一般是由于编程者使用中文输入法或者从别的地方直接复制粘贴代码造成的。代码中出现了中文空格,中文引号, 各种中文标点符号。
解决方法:
1.把出错行的空格及其前后空格删掉重新打一下试试。
2.把明显和其他标点符号颜色不同的改掉。(大部分编译器都有颜色识别)
3.直接全部重打。
二、重定义
error C2374: “MAXV”: 重定义;多次初始化
message : 参见“MAXV”的声明
可能是变量或函数的重定义,也可能是头文件重复包含产生重定义。
如果是头文件重复包含,可以在头文件的开头加上这句话:
#pragma once
意思就是这个程序无论被包含多少次,只编译一次,从而解决了重定义问题。
也可以用如下预编译指令解决:
#ifndef A_H
#define A_H
//A.h的内容
#endif
意思是如果未定义A_H,就定义它;如果已定义就什么都不干。
这里A_H的标识符可以自定义。
上面两种方式的作用一样,编写.h文件时加上这几句话是一个良好的编程习惯。
如果是变量重复定义,可以参考一下我的这篇血泪教训
三、堆栈溢出
Run-Time Check Failure #2 - Stack around the variable ‘A‘ was corrupted.
一般是数组下标越界,检查访问的数组下标是不是超出了定义的长度。
四、其他
指向绑定函数的指针只能用于调用函数
调用函数的时候没有加上括号。