- 根据C标准, 类似c = (b = a+2) - (a = 1); 和j =i*i++; 这样的语句都会导致“未定义的行为”(undefined behavior),这跟“由实现定义”的行为是不同的。
- 当程序中出现未定义的行为时,后果是不可预料的。不同的编译器给出的编译结果可能是不同的,但这还不是唯一可能发生的事情:首先程序可能无法通过编译,就算通过了编译也可能无法运行,就算可以运行也有可能崩溃、不稳定或者产生无意义的结果。
- 换句话说,应该像躲避瘟疫一祥避免未定义的行为。
未定义的行为
猜你喜欢
转载自blog.csdn.net/qq_42815188/article/details/85779328
今日推荐
周排行