LINUX.ORG.RU

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

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

Всё ещё не понимаю, что такое «близко к асму», но пусть будет, например, C– (Си минус минус). А если ещё ближе, то LLVM IR. Съел?

Я уверен что простых ЯП море, но то что ты перечислил работает в некоей среде (по-умолчанию, медленнее, сложнее, больше ресурсов требует), но победил Си: из-за практически прямого преобразования в машинный код (буквально 1 команда С бывает = просто 1 команде асм), а также понятный стандарт (ты можешь сегодня скомпилировать иходники 20-летней давности), прямое обращение к памяти, возможность напрямую использовать асм, легковесный компилятор, практически отсутствующий рантайм по сравнению с остальными ЯП - это все делает Си самым близким к асму, по сути «надстройкой над асм с небольшим рантаймом»…

Там нет никакой «анамольности». Всё происходит ровно так, как написано в стандарте.

Вот интересно, а почему по твоему в стандарте вдруг появился volatile, вот не было его и вроде все ок было (и прерывания и многое другое, а volatile не было)…?

И вот дополнение для понимания «аномальности»:

https://en.wikipedia.org/wiki/Volatile_(computer_programming)

Standards defects While intended by both C and C++, the current C standard fails to express that the volatile semantics refer to the lvalue, not the referenced object. The respective defect report DR 476 (to C11) is still under review with C17.[7]

Compiler defects Unlike other language features of C and C++, the volatile keyword is not well supported by most C/C++ implementations - even for portable uses according to the C and C++ standards. Most C/C++ implementations are buggy regarding the behavior of the volatile keyword.[8][9] Programmers should take great care whenever using the volatile keyword in C and C++.

Кстати, попробуй перевести слово с англиского, чтоб увидеть какой смысл в него закладывали создатели…

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

Всё ещё не понимаю, что такое «близко к асму», но пусть будет, например, C– (Си минус минус). А если ещё ближе, то LLVM IR. Съел?

Я уверен что простых ЯП море, но то что ты перечислил работает в некоей среде (по-умолчанию, медленнее, сложнее, больше ресурсов требует), но победил Си: из-за практически прямого преобразования в машинный код (буквально 1 команда С бывает = просто 1 команде асм), а также понятный стандарт (ты можешь сегодня скомпилировать иходники 20-летней давности), прямое обращение к памяти, возможность напрямую использовать асм, легковесный компилятор, практически отсутствующий рантайм по сравнению с остальными ЯП - это все делает Си самым близким к асму, по сути «надстройкой над асм с небольшим рантаймом»…

Там нет никакой «анамольности». Всё происходит ровно так, как написано в стандарте.

Вот интересно, а почему по твоему в стандарте вдруг появился volatile, вот не было его и вроде все ок было (и прерывания и многое другое, а volatile не было)…?

И вот дополнение для понимания «аномальности»:

https://en.wikipedia.org/wiki/Volatile_(computer_programming)

Standards defects While intended by both C and C++, the current C standard fails to express that the volatile semantics refer to the lvalue, not the referenced object. The respective defect report DR 476 (to C11) is still under review with C17.[7]

Compiler defects Unlike other language features of C and C++, the volatile keyword is not well supported by most C/C++ implementations - even for portable uses according to the C and C++ standards. Most C/C++ implementations are buggy regarding the behavior of the volatile keyword.[8][9] Programmers should take great care whenever using the volatile keyword in C and C++.