demiurg_spb 0 27 марта, 2013 Опубликовано 27 марта, 2013 · Жалоба Хотя... а в чем недоделанность _Bool ? Кроме ужасного названия?Он размером с int. И например на AVR от него никакого толку т.к. не помещается в байт. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 27 марта, 2013 Опубликовано 27 марта, 2013 · Жалоба Надо в стандарте записать, чтобы одиночные битовые поля имели тип bool. И например на AVR от него никакого толку т.к. не помещается в байт. И в крынку битовое поле не лезет? Оно же имеет тип int. :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 28 марта, 2013 Опубликовано 28 марта, 2013 · Жалоба 1. возможность для автоматических переменных задавать одинаковые идентификаторы во вложенных блоках.Согласен, но с одним уточнением - намеренное использование одинаковых идентификаторов. Иначе программисту придется перед тем, как сделать например такое в какой то функции - { int i; for(i=0;i<10;++i) a[i]=i; } просмотреть весь остальной код функции, что бы убедится, что там нигде не используется i 3. использование "для оптимальности" вариаций 5[a] и аналогичных "трюков".Это не 'трюк', это вообще 'курьез'. Использовать это в программе можно только с явной целью всех запутать. :rolleyes: Так что с этим пунктом тоже согласен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
slavka012 0 28 марта, 2013 Опубликовано 28 марта, 2013 · Жалоба А я люблю писать компактно, без лишних скобок, с минимальным количеством операторов. Считаю, что и компилируется более компактно, и работает чуть быстрее Вы еще без лишних пробелов пишите, вдруг более компактно компилироваться будет ))) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 28 марта, 2013 Опубликовано 28 марта, 2013 · Жалоба Вы еще без лишних пробелов пишите, вдруг более компактно компилироваться будет ))) Вот это в мое понятие о красоте и целесообразности не укладывается! Посмотрел, как в книжках пишут, на форуме, выработал свой стиль. Взял лучшее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demiurg_spb 0 28 марта, 2013 Опубликовано 28 марта, 2013 · Жалоба astyle рулит - за секунду переформатирует любой "страшный" си-код под свои предпочтения. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SyncLair 0 28 марта, 2013 Опубликовано 28 марта, 2013 · Жалоба astyle рулит - за секунду переформатирует любой "страшный" си-код под свои предпочтения. Может подскажите как заставить astyle переменные писать с начала строки а код с таба? int fn(int a,int b) { int c; <TAB>c = a+ b; <TAB>какой-то код return c; } Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demiurg_spb 0 29 марта, 2013 Опубликовано 29 марта, 2013 · Жалоба Может подскажите как заставить astyle переменные писать с начала строки а код с таба?Не подскажу. Никогда такого желания не возникало. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demiurg_spb 0 5 апреля, 2013 Опубликовано 5 апреля, 2013 · Жалоба Вот пример макроса, используемого в исходниках Linux. Тот кто сможет это осознать уже заслуживает медали;-) #define container_of(ptr, type, member) ({ \ const typeof( ((type *)0)->member ) *__mptr = (ptr); (type *)( (char *)__mptr - offsetof(type,member) );}) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sasamy 2 5 апреля, 2013 Опубликовано 5 апреля, 2013 (изменено) · Жалоба Вот пример макроса используемого в исходниках Linux. Тот кто сможет это осознать уже заслуживает медали;-) #define container_of(ptr, type, member) ({ \ const typeof( ((type *)0)->member ) *__mptr = (ptr); (type *)( (char *)__mptr - offsetof(type,member) );}) Вычисляет адрес структуры типа type по известному указателю ptr на ее элемент с именем member Изменено 5 апреля, 2013 пользователем sasamy Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
neiver 0 5 апреля, 2013 Опубликовано 5 апреля, 2013 · Жалоба Вычисляет адрес структуры типа type по известному указателю ptr на ее элемент с именем member Тому кто сможет сделать этот макрос без использования трёх применённых там GCC-шных расширений, используя только стандартный С99, тому можно сразу памятник нерукотворный :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SyncLair 0 5 апреля, 2013 Опубликовано 5 апреля, 2013 · Жалоба Тому кто сможет сделать этот макрос без использования трёх применённых там GCC-шных расширений, используя только стандартный С99, тому можно сразу памятник нерукотворный :) как то я не вижу трёх расишрений -- вроде ведь только одно (TYPEOF()) ? и TYPEOF() * на void * можно заменить ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sasamy 2 6 апреля, 2013 Опубликовано 6 апреля, 2013 · Жалоба Тому кто сможет сделать этот макрос без использования трёх применённых там GCC-шных расширений, используя только стандартный С99, тому можно сразу памятник нерукотворный :) А зачем ? Это - не для всех :) http://www.ibm.com/developerworks/ru/library/l-gcc-hacks/ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nixon 4 6 апреля, 2013 Опубликовано 6 апреля, 2013 · Жалоба #define CONTAINING_RECORD(address, type, field) ((type *)((unsigned char *)(address) - (unsigned char *)(&((type *)0)->field))) Ставьте памятник :) Авторам TNKernel :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться