个人第一帖:关于之前某帖子(顺便散分,小侃几句自己的心里话)
这几天逛论坛比较多,看到了很多好贴,也见识了很多大虾:像飞雪,面色铁路桥,JAVA掌门,jackeyjack等等好多哈。。实在太多了,不胜枚举啊!确实很牛,也让我感觉到自身的差距啊!!奋起直追呼……
但是,同时也看到了一点小小的问题,看了还是有点揪心。所以,有些感受,还是想小小抒发一下。言辞不当之处,还请海涵海涵……
话说是这样的,今天看了一帖子,叫做 ifdefined和endif菜问题
http://topic.csdn.net/u/20091017/10/e890a976-673b-4493-9710-5d1c0b162b45.html?seed=1480215380&r=60480527
内容:
#if defined(ONE_MACRO)
isFirstInit = 0; //原来是这样
int isFirstInit=0; //改成了这样,当然,发帖的关键不在这里
#else
long rp;
#endif
我在用VC做单步调试的时候,为什么直接跳过这三行?我原以为,即使我没定义ONE_MACRO这个宏,单步调试也应该进入到#else中的long rp;这条语句啊?怎么就直接跳到#endif后面的语句中去了呢?
下面就有一位朋友回复道:
#else 里直接声明了个变量,程序不需要走啊。你加个别的操作,就走了。
然后,楼主结帖了。。。
但是我觉得这明显不对啊,于是我就回复了:
同学,这个是预处理器做的工作,你的单步调试执行的时候,程序的编译链接都已经完成了,
所以,你不论在#ifdef,#else里面写什么东西,在调试的时候,总是不可能停顿在上面的
但是他已经结帖了,估计以后也不一定会看到,就这样认为了。。。。
学编程有一定时间了,自己也是个大学生,不过,注册CSDN还是前不久的事,这也是我第一篇帖子。
发这个帖子的意思是这样:
首先特别声明:没有对那位回复的朋友任何不敬之意。
揪心,首先,是为那些提问题的同学,他们弄了一个“自以为是正确”的答案回家了,熟不知。。其次,也是为那些回答问题的师兄师姐,至少还是要稍微注意下,才能贴出来自己的答案吧。。。
只是还请各位大虾大蟹们,以后对待我们的新同学(包括我哈),稍微多注意下下,要知道您这一句话,得让人家误信多久啊,所以……
PS: 再次强调,没有对那位朋友任何不敬之意。