0
ответов

Почему допустимо («целое число», «1,5» )= ДА?

Почему #isValid ("integer", "1,5" )#выводит YES? Я ожидал, что он выведет НЕТ, например #isValid ("integer", "1.5" )#. Я собираюсь проверить с помощью ....
вопрос задан: 18 July 2012 09:20
0
ответов

C++ :Странное поведение :Изменения возвращаемого значения в операторе return

Я столкнулся с очень странным поведением моего приложения. Я собираюсь описать свою ситуацию, а затем объяснить, что происходит не так. Ситуация У меня есть метод с такой сигнатурой :const...
вопрос задан: 10 July 2012 14:15
0
ответов

-fcatch-undefined-behavior в clang не работает так, как рекламируется

Я собрал версию 3.1 llvm/compiler-rt/clang и пытаюсь проверить, действительно ли что-нибудь делает -fcatch-undefined-behavior. Пока не повезло. Например. Я компилирую и запускаю #include #include &...
вопрос задан: 28 June 2012 08:18
0
ответов

Является ли неопределенным поведением наличие разных определений встроенной функции?

Минимальный код: // --------inline.h-------- struct X { статическая встроенная пустота foo (); }; #ifdef ДА inline void X::foo () { cout << "YES\n"; } #еще inline void X::foo () { cout << "NO\n";...
вопрос задан: 26 June 2012 04:31
0
ответов

Можно ли связать разные диалекты стран Персидского залива?

Я знаю, что в принципе это, вероятно, неопределенное поведение, но в интересах работы с большим проектом вот мой вопрос о GCC: предположим, я компилирую одну единицу транзакции с помощью gcc -std=c+...
вопрос задан: 23 May 2012 10:03
0
ответов

Вычисления с плавающей запятой IEEE-754, равенство и сужение

В следующем коде функции foo1,foo2 и foo3 считаются эквивалентными. Однако, когда запуск foo3 не завершается из цикла, есть ли причина, по которой это так? template <...
вопрос задан: 23 May 2012 06:51
0
ответов

Любой компилятор C, где «==» оценивается как большее, чем единица?

Поскольку все, что не равно нулю, означает «истина», но операторы >, <, == и т. д. возвращают 1 вместо «истина», мне любопытно, существуют ли какие-либо известные компиляторы C, в которых эти операторы могут привести к значению больше 1. ...
вопрос задан: 17 May 2012 08:31
0
ответов

Что происходит, когда префикс rep присоединяется к нестроковой инструкции?

Я попытался выяснить разницу в скорости между простыми петлями, петлями-петлями и встроенными повторными петлями. Я написал три программы для сравнения поведения: Программа 1 _start: xor %ecx,%ecx 0: не %ecx ...
вопрос задан: 21 April 2012 12:58
0
ответов

Разыменование указателя на статические данные вне области видимости в C

Отказ от ответственности: этот вопрос чисто академический. Пример, который я собираюсь привести, вероятно, является плохим стилем. Предположим, я пишу на C подпрограмму такого вида: char *foo(int x) { статическая панель символов [9]; ...
вопрос задан: 3 April 2012 20:52
0
ответов

По какой причине семантика a=a++ не определена?

а = а++; это неопределенное поведение в C. Я задаю вопрос: почему? Я имею в виду, я понимаю, что может быть трудно обеспечить последовательный порядок, в котором все должно быть сделано. Но некоторые компиляторы будут...
вопрос задан: 30 March 2012 13:29
0
ответов

считывались перед записью не определено с искаженной памятью?

Согласно этому потоку комментариев Reddit, оно не определено, если предпринимается попытка чтения памяти до того, как она была записана. Я имею в виду нормальную память кучи, которая была успешно обработана. ...
вопрос задан: 9 February 2012 22:36
0
ответов

Почему это простое присваивание ведет себя как неопределенное?

I освежил мое понимание инициализации значения по сравнению с инициализацией по умолчанию, и наткнулся на это: struct C {int x; int y; C () {} }; int main () {C c = C (); } ...
вопрос задан: 6 February 2012 16:33
0
ответов

Какие флаги GCC используются основными проектами с открытым исходным кодом для управления неопределенным поведением в C и C ++? [закрыто]

Есть несколько флагов GCC, которые используются крупными проектами с открытым исходным кодом для обхода воспринимаемого чрезмерного рвения со стороны компилятора при обработке неопределенного поведения, особенно в C ...
вопрос задан: 1 February 2012 22:51
0
ответов

Является ли неопределенным поведением отбрасывать постоянство параметра функции?

Представьте, что у меня есть эта функция на Си (и соответствующий прототип в заголовочном файле) void clearstring(const char *data) { char *dst = (char *)data; *dst = 0; } Есть ли неопределенное поведение в ...
вопрос задан: 31 January 2012 15:52
0
ответов

Почему Excel переводит `=10**-2` в `=0.1`?

Попробуйте вставить =10**-2 в ячейку в MS Excel. После нажатия Enter он преобразует его в =0,1. Я не могу найти документацию по **, но, похоже, это довольно странный оператор, похожий на экспоненцию...
вопрос задан: 30 January 2012 22:40
0
ответов

Определенное поведение для выражений

Стандарт C99 говорит в $ 6.5.2. Между предыдущей и следующей точкой последовательности объект должен иметь свое сохраненное значение, измененное не более одного раза при оценке выражения. Кроме того, ...
вопрос задан: 29 January 2012 19:48
0
ответов

Is this infinite recursion UB?

In C++11, as an infinite loop with no side-effects, the following program is UB: int main() { while (true) {} } Is the following also UB? void foo() { foo(); } int main() { foo(); } ...
вопрос задан: 27 January 2012 19:17
0
ответов

Почему этот вызов Objective C зависает?

Мой друг обнаружил странное поведение NSDictionary, и мне любопытно, почему это происходит. Рассмотрим следующий код: NSDictionary * dict = [[NSDictionary alloc] init]; // Ой, ...
вопрос задан: 19 January 2012 03:28
0
ответов

Является ли `* - p` действительно допустимым (правильно сформированным) в C ++ 03

Мне интересно узнать об этом фрагменте кода: int main () {char * p; char arr [100] = "Привет"; if ((p = arr) [0] == 'H') // делаем вещи } Действительно ли этот код правильно сформирован в C ++ 03? Мой аргумент ...
вопрос задан: 13 January 2012 07:45
0
ответов

Стандартная ссылка для int foo = foo

int foo = foo; компилируется. Какая часть стандарта C ++ допускает это?
вопрос задан: 15 December 2011 00:27
0
ответов

Почему char * вызывает неопределенное поведение, а char [] - нет?

Попытка изменить строковый литерал вызывает неопределенное поведение: char * p = "wikipedia"; p [0] = 'W'; // неопределенное поведение Один из способов предотвратить это - определить его как массив вместо указателя: ...
вопрос задан: 30 November 2011 16:16
0
ответов

Передача this перед выполнением базовых конструкторов: UB или просто опасно?

Рассмотрим этот самый маленький пример (я мог придумать): struct Bar; struct Foo {Bar * const b; Foo (Bar * b): b (b) {} }; struct Bar {Foo * const f; Бар (Foo * f): f (f) {} }; struct Baz: Bar {...
вопрос задан: 14 November 2011 19:04
0
ответов

Насколько неопределенным является неопределенное поведение?

Я не уверен, что понимаю степень, до которой неопределенное поведение может поставить программу под угрозу. Допустим, у меня есть такой код: #include int main() { int v = 0; scanf("%d", &...
вопрос задан: 1 November 2011 00:42
0
ответов

CONSTEXPR undefined поведение

Я экспериментировал с constexpr. На моем тестовом компилятере (G ++ 4.6) это не скомпилируется с ошибкой о выходе из оценок. Требуется ли компилятор, чтобы определить это в компиляционном времени? #include <...
вопрос задан: 14 September 2011 18:57
0
ответов

Неопределенное поведение с Const_Cast

Я надеялся, что кто-то мог уточнить, что именно подразумевается под undefined поведением в C ++. Учитывая следующее определение класса: класс FOO { Public: явное значение foo (int value): m_int (значение) {} ...
вопрос задан: 8 September 2011 14:21
0
ответов

Могу ли я лечить 2D-массив в качестве непрерывного 1D-массива?

Рассмотрим следующий код: int A [25] [80]; А [0] [1234] = 56; int * p = & a [0] [0]; P [1234] = 56; Содержит ли вторая строка неопределенного поведения? Как насчет четвертой строки?
вопрос задан: 1 September 2011 10:35
0
ответов

Почему это нарушение прав доступа происходит с флагами / Og и / GL с передачей по ссылке?

Когда (и только когда) я компилирую свою программу с флагом / Og и / GL с помощью Windows Server Компилятор 2003 DDK C ++ (это нормально для WDK 7.1, а также Visual Studio 2010!), Я получаю нарушение прав доступа, когда ...
вопрос задан: 29 August 2011 15:32
0
ответов

В какой момент разыменование нулевого указателя становится неопределенным поведением?

Если я фактически не обращаюсь к разыменованному «объекту», разыменование нулевого указателя все еще не определено? int * p = 0; int & r = * p; // неопределенный? int * q = & * p; // неопределенный? Слегка ...
вопрос задан: 20 August 2011 10:50
0
ответов

Псевдонимы указателя на массив - неопределенное поведение?

Вызывает ли следующий код неопределенное поведение (из-за нарушения псевдонима или по другой причине)? int foo (int (* a) [10], int (* b) [5]) {(* a) [5] ++; return (* b) [0]; } int x [10]; foo (& x, (int (*) [...
вопрос задан: 15 August 2011 05:20
0
ответов

Почему разыменование нулевого указателя является неопределенным поведением?

Согласно ISO C ++ разыменование нулевого указателя является неопределенным поведением. Меня интересует, почему? Почему стандарт решил объявить это неопределенным поведением? Что послужило причиной этого решения? ...
вопрос задан: 22 July 2011 16:43