Я переношу некоторый (рабочий) код из Linux в Windows 8. Я использую DDK.Портирование с Linux на Windows 8: имена членов структуры
typedef struct {
unsigned int test1;
unsigned int test2;
} settings;
const settings vp_settings = {
.test1 = 1,
.test2 = 1
};
В чем отличие компилятора Windows DDK и GCC, который делает это недопустимым? Ошибка я получаю, предполагая, что typedef struct {
является линия 1 и нумерация продолжается в обычном режиме:
(7) : error: C2059: syntax error : '.'
Как я пишу это таким образом, что не будет никаких ошибок синтаксиса? Я хотел бы сохранить одинаковые имена участников, поэтому мне не нужно изменять остальную часть базы кода. Является ли период излишним и может быть удален?
Предположительно этот код значительно упрощен ... :) – sarnold
@sarnold - я понимаю. Я хотел сказать, что Microsoft никогда не обвинялась в том, что она очень агрессивно относится к поддержке последних/лучших открытых стандартов, и, вероятно, лучший подход, как видно из вышеприведенной ссылки, «Просто отбросьте теги имени поля». IMHO ... – paulsm4
Глупый я ожидаю, что они реализуют опрятную функцию только через 13 лет после того, как она будет указана. :) – sarnold