关于编译器编译顺序的一个小问题...
2009-02-01 00:31
260 查看
int t;
char buf[]={"abc"};
for(t=0;buf[t]!='\0';t++)
printf("%d ",buf[t]);
printf("\n");
t=0;
printf("%d %d %d",buf[t],buf[++t],buf[++t]);
想说明一个简单的问题,最后一行代码往往不能达到想要的效果,至少在我的g++下面不能。
原因在于编译器在编译的时候不一定是按照从左到右的顺序处理,比如,g++是按照从又往左的顺序。
那么,在书写代码的过程中应该避免最后一行那样的写法,一方面是为移植性着想,一方面是为了避免难以发现的错误。
反正我以后不会在printf里头写++t了。
over...
char buf[]={"abc"};
for(t=0;buf[t]!='\0';t++)
printf("%d ",buf[t]);
printf("\n");
t=0;
printf("%d %d %d",buf[t],buf[++t],buf[++t]);
想说明一个简单的问题,最后一行代码往往不能达到想要的效果,至少在我的g++下面不能。
原因在于编译器在编译的时候不一定是按照从左到右的顺序处理,比如,g++是按照从又往左的顺序。
那么,在书写代码的过程中应该避免最后一行那样的写法,一方面是为移植性着想,一方面是为了避免难以发现的错误。
反正我以后不会在printf里头写++t了。
over...
相关文章推荐
- 关于DLL搜索路径顺序的一个问题
- 关于DLL搜索路径顺序的一个问题
- 一个关于不同编译器对operator++和operator+=的处理方式的问题
- 关于java中一次编译多个源文件时的编译顺序的问题
- 关于Qt编译时问题的一个非常奇怪的解决方法
- [原创].关于使用QII 10.0编译器无法编辑和查看中文的问题一个变通解决方案
- 关于一个STM32编译报错问题,变量声明不能在语句后面
- 大家好!请教大家一个问题!关于日文编译的问题!
- [转载].关于使用QII 10.0编译器无法编辑和查看中文的问题一个变通解决方案
- Android编译系统中头文件搜索路径顺序的一个问题
- 关于一个android工程同时使用多个工程库,在编译时出现的问题
- 一个关于Show窗口与Invalidate();顺序问题
- 关于cocos2dx3.0在eclipse中的一个小编译问题
- 一个关于HQL预编译的简单问题
- 关于sublime 编译C与gc++编译C的一个问题
- 关于VC6中基于对话框的程序,往Combox 添加一个CComboBox变量,然后程序编译运行,窗口不出现的问题
- 一个关于VS2008在其他未安装VS2008的电脑上无法运行编译的程序的问题 收藏
- 填一个坑。关于把ruby编译到android上的一个遗留问题。
- 一个关于防止编译器优化特定代码的问题
- 关于DLL搜索路径顺序的一个问题