|
|
|
|
|
by Kranar
909 days ago
|
|
>The key thing to understand is that if you use these flags, you opt-in to a non-standard C dialect. This is not true. The C Standard explicitly states that a conforming implementation is welcome to provide well defined semantics to behavior that the standard states is undefined. The whole point of undefined behavior is that the C Standard imposes no requirement on implementations about the semantics of that program, so if a specific implementation adds some kind of checks or provides some sort of deterministic behavior to something that is otherwise undefined, the program itself is still C code and adheres to the C Standard. >Your code can no longer be compiled by a compiler that does not support these special C dialects. Undefined behavior is a semantic property of a program, not a syntactic property, so any other conforming C compiler will have no problem compiling it. |
|