Я читал эту статью, и они используют следующий пример, чтобы объяснить поведение undefined:
// PROGRAM 1
#include <stdio.h>
int f1() { printf ("Geeks"); return 1;}
int f2() { printf ("forGeeks"); return 1;}
int main()
{
int p = f1() + f2();
return 0;
}
Однако, похоже, это порядка, в котором оцениваются подвыражения, и согласно стандарту C (Приложение J.1) это неопределенное поведение, а не поведение undefined:
Неопределенное поведение: Порядок, в котором оцениваются подвыражения, и порядок, в котором побочные эффекты имеют место, кроме как указано для функции-вызова(), & &, ||,?:, и запятая операторы (6.5)
Поскольку я очень новичок в чтении официальных спецификаций, мне интересно, не понял ли я пример или документацию. Я знаю, что это может показаться очень педантичным, но я заинтересован в том, чтобы правильно изучить эти продвинутые темы.