DVK wrote: 24 May 2017 12:52
AndreyT wrote: 24 May 2017 05:09
DVK wrote: 24 May 2017 03:28
Креативненько Вы процитировали. Изначально, thinker писал про компилятор, а не платформу.
Ничего "креативненького". В мире С компилятор - это и есть платформа.
Никогда и нигде компилятор != платформе, не надо путать. Понятие платформы, в том числе, включает в себя понятие data model, которая implementation and hardware dependent.
В формальном мире языка С нет "компилятора", "платформы", "hardware", "OS", а есть только понятие
implementation, т.е. реализация компилятора в совокупности с реализацией стандартной библиотеки. Все. Никакой hardware dependency в С нет и никогда не было, по крайней мере с момента его стандартизации. Язык С "живет" в окружении
абстрактной С-машины, предоставляемой данной
реализацией. Любые особенности реализации (implementation-dependent behavior) - это особенности данной абстрактной С-машины. Ничего, кроме абстрактной С-машины, язык не знает и знать не должен.
В разговорной речи, когда речь идет о языке С, устоявшейся терминологией является использование терминов "компилятор", "платформы", "реализация" как синонимов.
DVK wrote: 24 May 2017 12:52
Все слова правильные, а вот вывод не совсем. (см. выше)
Тут нет никакого "вывода", а есть банальная базовая аксиоматика языка. Я ее просто цитирую дословно, тут нет ничего моего лично.
DVK wrote: 24 May 2017 12:52AndreyT wrote: 24 May 2017 05:09Если их не существует, то подбирать их придется "приблизительно", руководствуясь application-specific соображениями. Компилятор, разумеется, об этих соображениях не имеет ни малейшего представления.
Если их не существует, то не надо их аппроксимировать другими "похожими" типами. Используйте что есть под рукой.
Мне не понятно противопоставление typedef-инга типов и идеи "использовать, что есть под рукой". Где связь?