While answering a question that made use of some functions (sscanf_s
and sprintf_s
) that I thought were not standard C, Daniel Fischer brought to my attention that the functions in question were defined in Annex K.
I understand generally that normative means it helps define the standard. But, an annex to the C Standard has traditionally been treated as informative only. Annex K is labeled as normative in the C11 Standard. It defines "safe" functions.
Does this mean a compiler that doesn't provided these functions does not conform to the C11 Standard?
I only have the draft C11 Standard available to me, but it states that Annex K is normative, but the library section of the standard makes no mention of the functions discussed in Annex K. A note in the definition of runtime-constraint seems to imply Annex K defines an extension.
Does a normative Annex only define an optional extension?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…