क्या संरचना सदस्य प्रारंभिक अभिव्यक्तियों के बीच कोई अनुक्रम बिंदु है?संरचना सदस्य प्रारंभिकरण के बीच कोई अनुक्रम बिंदु है?
उदाहरण के लिए, क्या यह अच्छी तरह से परिभाषित किया गया है कि कोड बेलो हमेशा "ए, बी" प्रिंट करेगा?
#include <stdio.h>
typedef struct {
char *bytes;
int position;
int length;
} Stream;
typedef struct {
char a;
char b;
} Pair;
char streamgetc(Stream *stream) {
return (stream->position < stream->length) ? stream->bytes[stream->position++] : 0;
}
int main(void) {
Stream stream = {.bytes = "abc", .position = 0, .length = 3};
Pair pair = {.a = streamgetc(&stream), .b = streamgetc(&stream)};
printf("%c, %c\n", pair.a, pair.b);
return 0;
}
मुझे फुटनोट 131 के अतिरिक्त पसंद आया (और इसके लिए वोट दिया गया), लेकिन मैं पुराने जवाब के साथ गया क्योंकि मैंने सोचा कि दोनों पूर्ण थे। –
क्या इसका मतलब यह है कि विभिन्न तत्वों से जुड़े अभिव्यक्तियों का मूल्यांकन ओवरलैप न करने की गारंटी है, लेकिन किसी भी विशेष मूल्यांकन के समय के बीच इस तरह के अभिव्यक्तियों का मूल्यांकन किया जा सकता है और संबंधित संरचना तत्व वास्तव में लिखा गया है? – supercat