Liste des Groupes | Revenir à cl c |
i = mylib_random( sizeof( buffer ));
Ensures( buffer[ i ]== 0 );
>
. How could one implement "Ensures" in C? The first thing that
comes to mind is a call to "assert" of course.
But I also have to think of an "escape" Chandler Carruth mentioned
it in one talk. IIRC, it was something along the lines of
>
static void escape( volatile void * p )
{ asm volatile( "" : : "g"(p) : "memory" ); }
>
(which might not be standard C). Now, if you call "escape( buffer )"
at the end of the definition of the function "f" above, the compiler
knows that the contents of buffer has become visible to the outside
world, so that the effects of the "memset" operation become visible
externally, which means that the "memset" call cannot be elided.
Les messages affichés proviennent d'usenet.