Некоторое время назад я обнаружил (довольно древний) компилятор C, который сканировал макросы таким образом (Псевдокод):
if line.startswith("#include") or line.startswith("#define"):
...
.. В связи с чем у меня возник вопрос, где действительно следует размещать макросы, в начале строки, например так:
void stuff()
{
#if defined(WIN32) || defined(_WIN32)
...
#else
#if defined(__GNUC__)
...
#else
...
#endif
#endif
}
Или, скорее, так (как я это делаю, для улучшения читаемости) :
void stuff()
{
#if defined(WIN32) || defined(_WIN32)
...
#else
# if defined(__GNUC__)
...
# else
...
# endif
#endif
}
Стандартизован ли способ отступа кода препроцессора, то есть, независимо от того, как я отступаю, он всегда будет работать одинаково?