-
- налетели, коршуны. сии дефайны в файловой системе от микриума, что версии 3.10 Mahagam(49 знак., 21.05.2013 23:49)
- Таки за U32 сжигать нужно. Ибо можно написать short U32, long U16, I32 double... (#define I32 long) и получить говнокод 80-го уровня. - fk0(21.05.2013 23:24)
- ну так наговнокодить ещё надо постараться. я уже не пользуюсь редакторами без подсветки синтаксиса. - Mahagam(21.05.2013 23:46)
- За макросами такое может спрятаться - amusin(22.05.2013 06:56)
- ну так наговнокодить ещё надо постараться. я уже не пользуюсь редакторами без подсветки синтаксиса. - Mahagam(21.05.2013 23:46)
- Во всех проектах использую именно define. Попробовал через typedef и тут же обломался - если определить другой тип, ну пусть "typedef unsigned char uch8" то компилятор будет ругаться к примеру при попытке сунуть аргумент в функцию. В случае же с 1111111(63 знак., 21.05.2013 22:39)
- поддерживаю товарищей, так делать нельзя. Nikolay801_(64 знак., 22.05.2013 09:03)
- сказочно кривые ручки... - Mahagam(22.05.2013 01:00)
- "А мы уйдем на север, а мы уйдем на север" - 1111111(22.05.2013 01:14)
- Напрасно Вы так, define куда мутней. Например, для #define pU16 unsigned int* попробуйте объявить указатели pU16 src,dst; Таки dst не станет указателем, в отличие от подобного объявления с typedef. - Юра(21.05.2013 23:14,
)
- Не имею привычки скрывать указатели, соответсвенно и проблемы нет - 1111111(21.05.2013 23:49)
- С чего бы то? Пример в студию! - fk0(21.05.2013 22:57)
- Стеб, что ли? Мелкомягкая студия, IAR ,например. char * p ,q; - сущности разного типа. - Хитрый Китаец(21.05.2013 23:38)
- И чего? Тип -- это "char". А не "char *". А звёздочка относится к переменной. Вообще речь про целочисленные типы. Через define ни указатели, ни структуры и т.п. сделать нельзя. Т.е. даже если и можно (структуры, например), но это будут разные fk0(8 знак., 22.05.2013 00:32)
- IAR в последних версиях уже не ругается на типы, переименованные с помощью typedef, если они имеют одинаковую размерность. - rezident(22.05.2013 00:17)
- Вполне вероятно. Хорошо ли это - не знаю. Но то, что #define плох для объявления типов - ИМХО, однозначно. - Хитрый Китаец(22.05.2013 00:37)
- А с какого оно должно ругаться? "C" автоматически приводит (целочисленные) типы. Со времён Кернигана и Ричи. - fk0(22.05.2013 00:26 - 00:33)
- Вы имеете в виду integer promotion под автоматическим приведением типов? - rezident(22.05.2013 00:35)
- Я имею ввиду примерно такую штуку. Оно не обязательно integer. Ниже пример программы на pascal и выдаваемые компилятором ошибки. А что бы выдал C? fk0(1484 знак., 22.05.2013 01:13 - 01:15, ссылка)
- Вы имеете в виду integer promotion под автоматическим приведением типов? - rezident(22.05.2013 00:35)
- Ну щаз я кинулся искать какой из компиляторов ругался 10 лет назад. Прецедент был, мне этого хватило - 1111111(21.05.2013 23:20)
- Пустословие. - fk0(21.05.2013 23:20)
- Взаимно - 1111111(22.05.2013 00:02)
- Мудозвон. Клинический. За базар не отвечает. - fk0(22.05.2013 00:22 - 00:27)
- Так и запишем - аргументы у интернет воена отсутствуют, перешел на личности - 1111111(22.05.2013 00:33)
- Аргументы отсутствуют у тебя. Берёшься утверждать что-то на абсолютно пустом месте. Более того, утверждения на первый взгляд очевидно бредовые. - fk0(22.05.2013 00:35)
- Место было отнюдь не пустое, typedef как очевидное решение был опробован в первую очередь. С отрицательным результатом. А твои аргументы "такого не может быть потому что не может быть никогда" конечно же идеальны для любого спора. Продолжай в том 1111111(8 знак., 22.05.2013 00:41)
- Аргументы отсутствуют у тебя. Берёшься утверждать что-то на абсолютно пустом месте. Более того, утверждения на первый взгляд очевидно бредовые. - fk0(22.05.2013 00:35)
- Так и запишем - аргументы у интернет воена отсутствуют, перешел на личности - 1111111(22.05.2013 00:33)
- Мудозвон. Клинический. За базар не отвечает. - fk0(22.05.2013 00:22 - 00:27)
- Взаимно - 1111111(22.05.2013 00:02)
- Пустословие. - fk0(21.05.2013 23:20)
- Стеб, что ли? Мелкомягкая студия, IAR ,например. char * p ,q; - сущности разного типа. - Хитрый Китаец(21.05.2013 23:38)
- Даёт пересечение пространств имён для типов и объектов (переменных, функций) -- не откомпилирует "int U8(float U16);", например. Может это и правильно, ибо встроенные типы тоже так не позволяют. - fk0(21.05.2013 19:16)
- 21-й век на дворе, давно уже в стандарте есть uint8_t, uint16_t и т.д., а народ всё велосипеды изобретает. - ЫЫукпу(21.05.2013 19:13,
)
- uint8_t - многабукаф, u8 - рулезз :)) - MBedder(21.05.2013 19:19)
- Можно одной. Заглавные, например, для типов. А строчные для переменных. - fk0(21.05.2013 19:55)
- Букв две (ui), а дальше стрелками выбирать нужный вариант. - Apтём(21.05.2013 19:25)
- фсеравно многакликаф :)) - MBedder(21.05.2013 19:32)
- Ха! Хорошая машинистка разгоняется до 10 букв в секунду. Эти ваши стрелочки её не впечатляют :-) - SciFi(21.05.2013 19:30)
- uint8_t - многабукаф, u8 - рулезз :)) - MBedder(21.05.2013 19:19)
- Переменную U867 как откомпилит? - Codavr(21.05.2013 18:12)
- наверно никак. #define подставляет только отдельные слова - zeleny(21.05.2013 19:54)
- по моему разумению - не найдёт такой хрени. но проверить уже не могу, поубивал я этот дефайн на проекте. - Mahagam(21.05.2013 18:34)
- Он превратит имя переменной в unsigned char67 и матерно обматерит на этапе компиляции. Такшта эта уважаемая программистская контора херню несусветную придумала. Я бы их кодом пользовался с величайшей осторожностью. - Codavr(21.05.2013 19:35 - 19:37)
- Несусветную херню несёшь ты: в C макросы "расширяются" только как цельное слово. - fk0(21.05.2013 19:56)
- Да, похоже я погорячился. - Codavr(21.05.2013 22:15)
- Несусветную херню несёшь ты: в C макросы "расширяются" только как цельное слово. - fk0(21.05.2013 19:56)
- Он превратит имя переменной в unsigned char67 и матерно обматерит на этапе компиляции. Такшта эта уважаемая программистская контора херню несусветную придумала. Я бы их кодом пользовался с величайшей осторожностью. - Codavr(21.05.2013 19:35 - 19:37)