У меня есть код, который построен как на Windows, так и на Linux. Linux на данный момент всегда 32 бит, но Windows 32 и 64 бит. Windows хочет, чтобы time_t был 64 бит, а Linux все еще имеет 32 бит. Я в порядке, но в некоторых местах значения time_t преобразуются в строки. Поэтому, когда time_T равно 32 бит, это должно быть сделано с% d, а когда оно 64 бит с% lld... что это за умный способ сделать это? Кроме того: любые идеи, как я могу найти все места, где time_t передаются функции printf для решения этой проблемы?
изменить: Я придумал объявление TT_FMT как "% d" или "% lld", а затем изменил мои printfs, как в printf ( "time:% d, register: blah" ) для printf ( "time:" TT_FMT ", register: blah" ) Есть ли способ лучше? И как их найти?