LINUX.ORG.RU

История изменений

Исправление dzidzitop, (текущая версия) :

Каким боком язык с undefined behaviour на каждый чих с интегральными типами неопределённой длины и бинарного представления становится «переносимым», не говоря уже об «ассемблере»?

Низкоуровневые вещи на C можно делать почти всегда с потерей переносимости (или обмазаться по макушку макросами).

Часто ты учитываешь что int может быть 16 бит, и думаешь о том, что переполнение int - undefined behaviour?

Ну а то, что на нём можно писать программки и компилировать под разные процессорные архитектуры, в отличие от конкретного языка ассемблера, и оно даже кое-как будет работать - это скорее вопреки языку C как таковому. Но по сравнению с языками ассемблера это был большой шаг вперёд. В начале 70х.

А вообще - скомпилируй программу на системе с базовой кодировкой UTF16-LE, а потом запусти её на системе с UTF-8. И потом расскажешь о переносимости программ на великом и могучем C. Если что, то локаль можно поменять в рантайме на почти любой системе. Это не константное свойство операционной системы иметь ту или иную базовую кодировку.

Исправление dzidzitop, :

Каким боком язык с undefined behaviour на каждый чих с интегральными типами неопределённой длины и бинарного представления становится «переносимым», не говоря уже об «ассемблере»?

Низкоуровневые вещи на C можно делать почти всегда с потерей переносимости (или обмазаться по макушку макросами).

Часто ты учитываешь что int может быть 16 бит, и думаешь о том, что переполнение int - undefined behaviour?

Ну а то, что на нём можно писать программки и компилировать под разные процессорные архитектуры, в отличие от конкретного языка ассемблера, и оно даже кое-как будет работать - это скорее вопреки языку C как таковому. Но по сравнению с языками ассемблера это был большой шаг вперёд. В начале 70х.

А вообще - скомпилируй программу на системе с базовой кодировкой UTF16-LE, а потом запусти её на системе с UTF-8. И потом расскажешь о переносимости программ на великом и могучем C.

Исправление dzidzitop, :

Каким боком язык с undefined behaviour на каждый чих с интегральными типами неопределённой длины и бинарного представления становится «переносимым», не говоря уже об «ассемблере»?

Низкоуровневые вещи на C можно делать почти всегда с потерей переносимости (или обмазаться по макушку макросами).

Часто ты учитываешь что int может быть 16 бит, и думаешь о том, что переполнение int - undefined behaviour?

Ну а то, что на нём можно писать программки и компилировать под разные процессорные архитектуры, в отличие от конкретного языка ассемблера, и оно даже кое-как будет работать - это скорее вопреки языку C как таковому. Но по сравнению с языками ассемблера это был большой шаг вперёд. В начале 70х.

Исправление dzidzitop, :

Каким боком язык с undefined behaviour на каждый чих с интегральными типами неопределённой длины и бинарного представления становится «переносимым», не говоря уже об «ассемблере»?

Низкоуровневые вещи на C можно делать почти всегда с потерей переносимости (или обмазаться по макушку макросами).

Часто ты учитываешь что int может быть 16 бит, и думаешь о том, что переполнение int - undefined behaviour?

Ну а то, что на нём можно писать программки и компилировать под разные процессорные архитектуры, в отличие от конкретного языка ассемблера, и оно даже кое-как будет работать - это скорее вопреки языку C как таковому.

Исходная версия dzidzitop, :

Каким боком язык с undefined behaviour на каждый чих с интегральными типами неопределённой длины и бинарного представления становится «переносимым», не говоря уже об «ассемблере»?

Низкоуровневые вещи на C можно делать почти всегда с потерей переносимости (или обмазаться по макушку макросами).

Часто ты учитываешь что int может быть 16 бит, и думаешь о том, что переполнение int - undefined behaviour?