53 / 53 / 2
Регистрация: 06.04.2011
Сообщений: 209
|
||||||
1 | ||||||
Соответствует ли это стандарту С?04.09.2011, 07:40. Показов 895. Ответов 6
Метки нет (Все метки)
В Visual Studio и в CodeBlocks такой код компилируется с предупреждением.
0
|
04.09.2011, 07:40 | |
Ответы с готовыми решениями:
6
насколько это соответствует стандарту? Соответствует ли код стандарту? какому стандарту С++ соответствует minGW Какова вероятность того, что устройство соответствует стандарту? |
Формучанин
364 / 294 / 42
Регистрация: 02.11.2010
Сообщений: 1,242
|
|||||||||||
04.09.2011, 16:18 | 5 | ||||||||||
чтобы убрать варнинги\ошибки надо сделать явное преобразование:
1. Если переменная(константа i) расположена в стеке(в теле main() ): В си, в функцию передастся адрес этой переменной, в printf() улетит значение взятое из стека.(вывод 0) В си++ в функцию улетит адрес какой то стековой переменной, в printf() улетит 100.(вывод 100) (в си++ константы работают иначе) 2. Если переменная объявлена как глобальная. В обоих случаях ошибка сегментации. Т.к. переменная расположена в памяти которая только для чтения, а функция делает попытку записи. Однако, если:
Для наглядности можно скомпилировать эту программу через gcc и g++ меняя местами 8 и 11 строки
1
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
||||||
04.09.2011, 16:25 | 6 | |||||
изменение значения переменной, первоначально объявленной как const приводит к undefined behaviour
при это законно снимать константность и изменять первоначально неконстантные переменные
1
|
Заблокирован
|
|
04.09.2011, 18:41 | 7 |
Нет, это не соответствует стандарту. В принципе, если бы переменная была бы объявлена не как автоматическая, а как статическая, то это могло бы привести к аварийному завершению программы, так как компилятор вправе поместить ее в памяти только для чтения.
0
|
04.09.2011, 18:41 | |
04.09.2011, 18:41 | |
Помогаю со студенческими работами здесь
7
Каждой скобке соответствует какое-то число. Каждому числу соответствует какая-то буква. Напишите получившееся слово. вводится число, вводится степень и надо узнать, соответствует ли это число данной степени Инициализация по стандарту C++11 Привести к стандарту даты Как писать код по стандарту Книга по стандарту с++ 11 для начинающих Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |