user-0 提问: 困惑已久的问题，求大神解决

回复:
user: user-0
content: 那这个程序是对的了？（我照课本70页改的）

user: user-1
content: 楼上说得不错，基本上看出来了。

user: user-2
content: 引用 20 楼 sholber 的回复:[quote=引用 19 楼 ypzhong 的回复:] [quote=引用 8 楼 sholber 的回复:] [quote=引用 7 楼 zhao4zhong1 的回复:] 不要迷信书、考题、老师、回帖； 要迷信CPU、编译器、调试器、运行结果。 并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。 任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实！  有人说一套做一套，你相信他说的还是相信他做的？ 其实严格来说这个世界上古往今来所有人都是说一套做一套，不是吗？  不要写连自己也预测不了结果的代码！  别的我不说了，只说“要迷信编译器”。 你让大家说说，编译器真的可信吗？据我所知，每个编译器都曾经有BUG。[/quote] 不要太钻编译器牛角尖，编译器都不信，难不成你还想自己搞个编译器。<c专家编程>也有讨论标准，但是也没你这么钻牛角尖的，普通标准知识完全可以应付编程。计算机系统那么庞大，c标准只是冰山一角吧。[/quote] 你都不知道我们在讨论什么，瞎掺和什么。 普通标准知识掌握了，一般不会说外行话。说外行话，就是连普通标准知识都不掌握。话说，哪些标准知识属于普通标准知识？ C标准虽然只是冰山一角，C编译器也得遵守不是。不遵守谁还敢用，用VC6的都是些什么人，还不清楚吗？[/quote]  你估计还不知道他的回帖风格，在这里晃荡久了，见他基本上都会流水线作业，回复的都是模版，很有点见人就念阿弥陀佛的感觉，也几乎等于在刷分！都已经习惯了，几乎不看，大道理即使再正确也是太枯燥无聊的！恕我多言

user: user-1
content: 啥啥呀~~什么叫编译器和标准一起讨论是外行…… 不符合标准的编译器报错是好的，很多根本不报错，因为它本身就是有毛病的。 你自认为能写出强壮的代码不行，起码得大家都公认才行。在这个网上发言的，估计没有几个认为自己说的话有毛病，但照样错误百出不是？！

user: user-3
content: 引用 20 楼 sholber 的回复:[quote=引用 19 楼 ypzhong 的回复:] [quote=引用 8 楼 sholber 的回复:] [quote=引用 7 楼 zhao4zhong1 的回复:] 不要迷信书、考题、老师、回帖； 要迷信CPU、编译器、调试器、运行结果。 并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。 任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实！  有人说一套做一套，你相信他说的还是相信他做的？ 其实严格来说这个世界上古往今来所有人都是说一套做一套，不是吗？  不要写连自己也预测不了结果的代码！  别的我不说了，只说“要迷信编译器”。 你让大家说说，编译器真的可信吗？据我所知，每个编译器都曾经有BUG。[/quote] 不要太钻编译器牛角尖，编译器都不信，难不成你还想自己搞个编译器。<c专家编程>也有讨论标准，但是也没你这么钻牛角尖的，普通标准知识完全可以应付编程。计算机系统那么庞大，c标准只是冰山一角吧。[/quote] 你都不知道我们在讨论什么，瞎掺和什么。 普通标准知识掌握了，一般不会说外行话。说外行话，就是连普通标准知识都不掌握。话说，哪些标准知识属于普通标准知识？ C标准虽然只是冰山一角，C编译器也得遵守不是。不遵守谁还敢用，用VC6的都是些什么人，还不清楚吗？[/quote] 编译器不要按照标准来编译程序，依据符不符合标准进行报错或者警告，编译器和标准一起讨论是外行？还有我是码农，至少我现在不用看标准能够写出强壮的代码。

user: user-1
content: 引用 19 楼 ypzhong 的回复:[quote=引用 8 楼 sholber 的回复:] [quote=引用 7 楼 zhao4zhong1 的回复:] 不要迷信书、考题、老师、回帖； 要迷信CPU、编译器、调试器、运行结果。 并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。 任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实！  有人说一套做一套，你相信他说的还是相信他做的？ 其实严格来说这个世界上古往今来所有人都是说一套做一套，不是吗？  不要写连自己也预测不了结果的代码！  别的我不说了，只说“要迷信编译器”。 你让大家说说，编译器真的可信吗？据我所知，每个编译器都曾经有BUG。[/quote] 不要太钻编译器牛角尖，编译器都不信，难不成你还想自己搞个编译器。<c专家编程>也有讨论标准，但是也没你这么钻牛角尖的，普通标准知识完全可以应付编程。计算机系统那么庞大，c标准只是冰山一角吧。[/quote] 你都不知道我们在讨论什么，瞎掺和什么。 普通标准知识掌握了，一般不会说外行话。说外行话，就是连普通标准知识都不掌握。话说，哪些标准知识属于普通标准知识？ C标准虽然只是冰山一角，C编译器也得遵守不是。不遵守谁还敢用，用VC6的都是些什么人，还不清楚吗？

user: user-3
content: 引用 8 楼 sholber 的回复:[quote=引用 7 楼 zhao4zhong1 的回复:] 不要迷信书、考题、老师、回帖； 要迷信CPU、编译器、调试器、运行结果。 并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。 任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实！  有人说一套做一套，你相信他说的还是相信他做的？ 其实严格来说这个世界上古往今来所有人都是说一套做一套，不是吗？  不要写连自己也预测不了结果的代码！  别的我不说了，只说“要迷信编译器”。 你让大家说说，编译器真的可信吗？据我所知，每个编译器都曾经有BUG。[/quote] 不要太钻编译器牛角尖，编译器都不信，难不成你还想自己搞个编译器。<c专家编程>也有讨论标准，但是也没你这么钻牛角尖的，普通标准知识完全可以应付编程。计算机系统那么庞大，c标准只是冰山一角吧。

user: user-1
content: 1+1=2，这个是数学问题。谈不上现实不现实吧，除非你用的是类比。但是数学是严格的。 C也是严格的。C的标准在修正，跟不上标准的编译器，那是它自己的问题。是编译器要适应标准，而不是相反。

user: user-4
content: 1+1=2在现实世界中不是从来没对过吗？

user: user-1
content: 证明完毕。         11``

user: user-1
content: 引用 13 楼 zhao4zhong1 的回复:不迷信编译器，你能解释下面这段代码是怎么工作的吗？ //仅对VC6 #include <stdio.h> void fun1() {     int f1=1;     printf("fun1\n");     printf("fun1\n"); } void fun2() {     int f2=2;     printf("fun2\n"); } void fun3() { } void main() { #ifdef _DEBUG     printf("sizeof(fun1)==%d\n",*(int *)((int)fun2+1)-*(int *)((int)fun1+1));     printf("sizeof(fun2)==%d\n",*(int *)((int)fun3+1)-*(int *)((int)fun2+1)); //sizeof(fun1)==59 //sizeof(fun2)==43 #else     printf("sizeof(fun1)==%d\n",(int)fun2-(int)fun1);     printf("sizeof(fun2)==%d\n",(int)fun3-(int)fun2); //sizeof(fun1)==32 //sizeof(fun2)==16 #endif }   有回复也不通知一下，真是的！ 没太明白你的意思， void main (... 是不对的搞法。 VC 6居然承认这种搞法， 所以，你用的编译器是不对的， 所以，不能迷信编译器。

user: user-4
content: 这个也同上： #pragma comment(linker,"/SECTION:.text,RW") #include <stdio.h> #ifdef _DEBUG #define OFFSET 0x0C #else #define OFFSET 0x01 #endif int *p; int p2() {     int a;       a=2;     return a; } int main() {     p=(int *)((char *)p2+OFFSET);     printf("p2==0x%08x,p==0x%08x,*p==%d\n",(char *)p2,p,*p);     *p=3;     printf("p2()==%d\n",p2());     return 0; } //p2==0x00401000,p==0x0040100c,*p==2 //p2()==3 //

user: user-4
content: 不迷信编译器，你能解释下面这段代码是怎么工作的吗？ //仅对VC6 #include <stdio.h> void fun1() {     int f1=1;     printf("fun1\n");     printf("fun1\n"); } void fun2() {     int f2=2;     printf("fun2\n"); } void fun3() { } void main() { #ifdef _DEBUG     printf("sizeof(fun1)==%d\n",*(int *)((int)fun2+1)-*(int *)((int)fun1+1));     printf("sizeof(fun2)==%d\n",*(int *)((int)fun3+1)-*(int *)((int)fun2+1)); //sizeof(fun1)==59 //sizeof(fun2)==43 #else     printf("sizeof(fun1)==%d\n",(int)fun2-(int)fun1);     printf("sizeof(fun2)==%d\n",(int)fun3-(int)fun2); //sizeof(fun1)==32 //sizeof(fun2)==16 #endif }

user: user-1
content: 引用 11 楼 zhao4zhong1 的回复:[quote=引用 10 楼 sholber 的回复:] [quote=引用 9 楼 zhao4zhong1 的回复:] [quote=引用 8 楼 sholber 的回复:] [quote=引用 7 楼 zhao4zhong1 的回复:] 不要迷信书、考题、老师、回帖； 要迷信CPU、编译器、调试器、运行结果。 并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。 任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实！  有人说一套做一套，你相信他说的还是相信他做的？ 其实严格来说这个世界上古往今来所有人都是说一套做一套，不是吗？  不要写连自己也预测不了结果的代码！  别的我不说了，只说“要迷信编译器”。 你让大家说说，编译器真的可信吗？据我所知，每个编译器都曾经有BUG。[/quote] 我猜你驾船出海时一定带好几个指南针：“指南针真的可信吗？据我所知，每个指南针都曾经有BUG。”[/quote]  这正是人们不迷信指南针的原因。[/quote] 而那个驾船出海带一个指南针的人虽然经过了磁场异常的很多海域，但最终还是比其它带很多指南针且不相信指南针的人更早找到了陆地。[/quote] 能告诉我是谁，在哪天发生的事吗？

user: user-4
content: 引用 10 楼 sholber 的回复:[quote=引用 9 楼 zhao4zhong1 的回复:] [quote=引用 8 楼 sholber 的回复:] [quote=引用 7 楼 zhao4zhong1 的回复:] 不要迷信书、考题、老师、回帖； 要迷信CPU、编译器、调试器、运行结果。 并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。 任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实！  有人说一套做一套，你相信他说的还是相信他做的？ 其实严格来说这个世界上古往今来所有人都是说一套做一套，不是吗？  不要写连自己也预测不了结果的代码！  别的我不说了，只说“要迷信编译器”。 你让大家说说，编译器真的可信吗？据我所知，每个编译器都曾经有BUG。[/quote] 我猜你驾船出海时一定带好几个指南针：“指南针真的可信吗？据我所知，每个指南针都曾经有BUG。”[/quote]  这正是人们不迷信指南针的原因。[/quote] 而那个驾船出海带一个指南针的人虽然经过了磁场异常的很多海域，但最终还是比其它带很多指南针且不相信指南针的人更早找到了陆地。

user: user-1
content: 引用 9 楼 zhao4zhong1 的回复:[quote=引用 8 楼 sholber 的回复:] [quote=引用 7 楼 zhao4zhong1 的回复:] 不要迷信书、考题、老师、回帖； 要迷信CPU、编译器、调试器、运行结果。 并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。 任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实！  有人说一套做一套，你相信他说的还是相信他做的？ 其实严格来说这个世界上古往今来所有人都是说一套做一套，不是吗？  不要写连自己也预测不了结果的代码！  别的我不说了，只说“要迷信编译器”。 你让大家说说，编译器真的可信吗？据我所知，每个编译器都曾经有BUG。[/quote] 我猜你驾船出海时一定带好几个指南针：“指南针真的可信吗？据我所知，每个指南针都曾经有BUG。”[/quote]  这正是人们不迷信指南针的原因。

user: user-4
content: 引用 8 楼 sholber 的回复:[quote=引用 7 楼 zhao4zhong1 的回复:] 不要迷信书、考题、老师、回帖； 要迷信CPU、编译器、调试器、运行结果。 并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。 任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实！  有人说一套做一套，你相信他说的还是相信他做的？ 其实严格来说这个世界上古往今来所有人都是说一套做一套，不是吗？  不要写连自己也预测不了结果的代码！  别的我不说了，只说“要迷信编译器”。 你让大家说说，编译器真的可信吗？据我所知，每个编译器都曾经有BUG。[/quote] 我猜你驾船出海时一定带好几个指南针：“指南针真的可信吗？据我所知，每个指南针都曾经有BUG。”

user: user-1
content: 引用 7 楼 zhao4zhong1 的回复:不要迷信书、考题、老师、回帖； 要迷信CPU、编译器、调试器、运行结果。 并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。 任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实！  有人说一套做一套，你相信他说的还是相信他做的？ 其实严格来说这个世界上古往今来所有人都是说一套做一套，不是吗？  不要写连自己也预测不了结果的代码！  别的我不说了，只说“要迷信编译器”。 你让大家说说，编译器真的可信吗？据我所知，每个编译器都曾经有BUG。

user: user-4
content: 不要迷信书、考题、老师、回帖； 要迷信CPU、编译器、调试器、运行结果。 并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。 任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实！  有人说一套做一套，你相信他说的还是相信他做的？ 其实严格来说这个世界上古往今来所有人都是说一套做一套，不是吗？  不要写连自己也预测不了结果的代码！

user: user-5
content: 这种定义方式是可以的 有于你的max不不需要返回值,直接显示 所以 把 int  max(int a, int b) 改成 void  max(int a, int b) 就可以了  另外,如果你的函数实现是在主函数后面 所以在主函数前面要有关于自定义函数的申明 参考2楼