Я понимаю, что это не тот ответ, который вы ищете, но так как вы спросили: «Есть ли способ достичь этого?», Я должен сказать, что ответ просто «Нет».
Не поймите меня неправильно - я знаю, что вы ищете, и почему вы этого хотите. Это очень крутая функция. Когда-то я пытался изобрести свой собственный C-подобный язык, и одной из моих целей было то, что каждое утверждение можно использовать в качестве выражения. Но эта функция просто не является частью C, и нет достойного способа подражать ей.
На самом деле вы можете легко доказать, что нет достойного способа подражать ему, потому что, если бы это было, gcc-людим не пришлось бы реализовывать эти сумасшедшие, нестандартные расширения.
Поэтому, если вы хотите использовать gcc и его расширения, обязательно используйте gcc и его расширения. Но если вы хотите писать в достаточно чистой C, вам просто нужно научиться жить без выражений оператора. «Когда в Риме делайте, как делают римляне». Все, что вам удастся достичь с помощью безумной макромагии, вероятно, (а) не будет удовлетворять ваше стремление к истинным выражениям выражений и (б) сделать обслуживание вашей программы кошмаром для всех, кто приходит за вами, и не понимает, что в этом хорошего ,
Вы говорите, что делаете встроенную работу, но уверены ли вы, что для вашей платформы нет порта gcc? (Я знаю, что вы сказали, что вы «вынуждены» использовать IAR, но вы также сказали, что это «игрушечный проект», поэтому, возможно, вы можете нарушить это правило. IAR всегда заставляет меня думать о лозунге Wikipedia «Игнорировать все правила» в любом случае . :-))
Но так как вы сказали, что делаете встроенную работу, это еще одна причина для того, чтобы отбить эту особенную особенность. Впечатление, которое я получаю, заключается в том, что одна из определяющих характеристик «встроенной работы» заключается в том, что она все же отказывается от использования половины языка, чтобы гарантировать использование только очень четко определенного, чрезвычайно безопасного подмножества. Поэтому я сомневаюсь, что расширение, такое как выражения выражений, будет работать для вашего проекта.