不要问我为什么,反正它就是发生了,我不能保证你的问题和我的情况一样。
今天编译的时候,出现了下列的错误:
Fatal error: Internal fault: 0x0ce4 in ‘xxxx’
xxxx为函数名,如果你在错误上点了的话,会跳转到程序的结尾,反正不在那个函数上(我用emacs,编译出错可以直接跳转岛错误的地方)。根据常识,这又是个不明的错误。我的代码结构大致如下:
不要问我为什么,反正它就是发生了,我不能保证你的问题和我的情况一样。
今天编译的时候,出现了下列的错误:
Fatal error: Internal fault: 0x0ce4 in ‘xxxx’
xxxx为函数名,如果你在错误上点了的话,会跳转到程序的结尾,反正不在那个函数上(我用emacs,编译出错可以直接跳转岛错误的地方)。根据常识,这又是个不明的错误。我的代码结构大致如下:
C/C++的宏非常不错,非常强大,我自己用的也非常顺手。自己的代码刚开始写的时候其实到处都是宏,然后根据需要,切换为C++,切换为Java,一会排成一字,一会排成人字。但使用却必须要小心些了,比如下面的语句:
#define abs(x) (x)<0?0-(x):(x)
#define rand(x) abs(rand()%x)
前两周太忙了,从上周才稍微缓和些,也正是那段时间,背写了大量的代码,自然免不了错误的。但有些错误,在一定程度上,应该是可以避免的,比如下面的代码:
int main(int argc, char* argv[]){ int* t = (int*)t; for (int i = 0; i < 4; i++) { t[i] = 0; } return 0; }
起了个很壮观的名字,也就是说,有点招摇撞骗的感觉。我想将这部分做一个系列,但有不想与别的太重合。嗯,这个系列的来源是这样的,平时总有人问我,xxx为什么无法编译通过,明明是对的,有些时候,我也这样问自己。从概念上来说,一些问题是不应该出现的,但却实际出现了,理论和实际总会出现一些冲突的。因此,我希望将一些平时我们不注意的细节记录下来,让我们在出现类似问题的时候可以寻找到答案,减少我们所犯的错误。
目前我电脑还没有安装完开发环境,所以,今天的开始只是一个回忆的开始,从我能记住的开始。改天将代码的实际测试结果和错误结果给出。
在C++中,继承很是强大,我们可以通过继承来扩展类型,但扩展是否有限制呢?先看下面的一组代码:
void copy(int* a, int* b) { } void copy(byte* a, byte* b) { } class CBase() { public: CBase(){} virtual ~CBase(){} } class Child: public CBase { public: Child(){}; virtual ~Child(){}; } void copy(CBase** a, CBase** b) { } void main() { CBase** temp1 = new Child*[10]; Child** temp2 = new Child*[10]; copy(temp1, temp2); }