0
ответов

Магическое число 127 в моей книге C [дубликат]

Возможный дубликат: что ограничивает количество вложенных циклов в c? Здравствуйте. Когда я читаю свою книгу C, в ней говорится, что вложение for-Loop в C может продолжаться даже дальше до 127 уровней! Откуда 127? ...
вопрос задан: 23 May 2017 12:22
0
ответов

Может ли реализация C неявно включать стандартные заголовки при включении другого заголовка?

При чтении Это правильное объявление C? Если да, то почему не работает? Я думал о #include int main (void) {int bool = 0; return bool == 0; } Эта программа ...
вопрос задан: 23 May 2017 12:19
0
ответов

Тип lvalue.bitfield, когда базовый тип битового поля не является int в C

Кто-то обратил мое внимание на следующую программу: #include struct X50 {длинный длинный int z: 50; } s50 = {2}; struct X10 {long long int z: 10; } s10 = {2}; int main () {printf (...
вопрос задан: 23 May 2017 12:12
0
ответов

Сколько страниц памяти используют компиляторы C в операционных системах для настольных ПК для обнаружения переполнения стека?

Этот вопрос связан с этим вопросом о массивах переменной длины в C99, но отличается от него. Ответы указывают на опасность выделения массивов переменной длины (или просто больших массивов ...
вопрос задан: 23 May 2017 12:06
0
ответов

Как реализовать memmove в стандартном C без промежуточной копии?

Из справочной страницы в моей системе: void * memmove (void * dst, const void * src, size_t len); ОПИСАНИЕ Функция memmove () копирует len байтов из строки src в строку dst. ...
вопрос задан: 23 May 2017 12:03
0
ответов

Является ли тип -каламбуром через объединение, не указанное в C99, и стало ли оно специфицированным в C11?

Ряд ответов на вопрос о переполнении стека Получение битов точности IEEE Single -для числа с плавающей запятой предлагает использовать структуру объединения для каламбура типа (, например. :превращение битов числа с плавающей запятой в...
вопрос задан: 23 May 2017 12:02
0
ответов

Полезно ли когда-либо «inline» без «static» или «extern» в C99?

Когда я пытаюсь построить этот код inline void f () {} int main () {f (); } используя командную строку gcc -std = c99 -o a a.c, я получаю ошибку компоновщика (неопределенная ссылка на f). Ошибка исчезает, если я использую ...
вопрос задан: 23 May 2017 11:54
0
ответов

Как форсировать арифметику без знака на типах с фиксированной шириной?

Следующий код (C99 и новее) хочет вычислить квадрат, ограниченный тем же числом битов, что и исходный тип с фиксированной шириной. #include < stdint.h > uint8_t sqr8 (uint8_t x) {...
вопрос задан: 23 May 2017 11:53
0
ответов

Стандартная альтернатива трюку GCC ## __ VA_ARGS__?

Существует известная проблема с пустыми аргументами для макросов с переменным числом аргументов в C99. пример: #define FOO (...) printf (__ VA_ARGS__) #define BAR (fmt, ...) printf (fmt, __VA_ARGS__) FOO ("отлично работает"); ...
вопрос задан: 23 May 2017 11:47
0
ответов

Какие функции C99 доступны в компиляторе MS Visual Studio?

Хорошо известно, что компилятор Microsoft Visual Studio не поддерживает C99, и похоже, что они не планируют его поддерживать. Тем не менее, компилятор включает в себя некоторые избранные функции, такие как ...
вопрос задан: 23 May 2017 11:46
0
ответов

Очистка кода C/C++ выявила проблемы с вариативными макросами.

Мы проводим некоторую очистку кода, исправляя сравнения со знаком/без знака, запускаем статический анализ и т. д. в коде. основа C, C++ и Java. Одно из предупреждений, которое мы получаем, это предупреждение: ISO C не...
вопрос задан: 23 May 2017 11:44
0
ответов

Реализация интеллектуального указателя в C [дубликат]

Возможный дубликат: интеллектуальные указатели / безопасное управление памятью для C? У меня есть встроенное приложение, в котором я размещаю объект в динамической памяти и передаю его другим модулям. Я ...
вопрос задан: 23 May 2017 10:33
0
ответов

- это i = f (); определяется, когда f изменяет i?

Связанный вопрос: Есть ли веская причина, по которой оператор присваивания не является точкой последовательности? Из часто задаваемых вопросов о comp.lang.c я могу сделать вывод, что указанная ниже программа не определена. Странно, но здесь упоминается т
вопрос задан: 23 May 2017 10:30
0
ответов

Какие функции в стандартной библиотеке C обычно способствуют неправильной практике? [закрыто]

Это навеяно этим вопросом и комментариями к одному конкретному ответу, поскольку я узнал, что strncpy - не очень безопасная функция обработки строк в C и что она дополняет нули, пока не достигнет n, ...
вопрос задан: 23 May 2017 02:08
0
ответов

Использование & #39;для& #39; итератор цикла после того, как цикл существует в C

В течение многих лет я выработал привычку не использовать значение итератора цикла for после выхода из цикла. Я мог бы поклясться, что сделал это, потому что раньше это выдавало предупреждение компилятора, но после...
вопрос задан: 17 April 2017 13:09
0
ответов

Вставка токена в C

Прочитав о VA_NARG, я попытался реализовать перегрузку функций в зависимости от количества аргументов в C с помощью макросов. Теперь проблема: void hello1 (char * s) {...} void hello2 (char * s, char * ...
вопрос задан: 14 March 2016 20:02
0
ответов

Есть ли особый случай для макросов при раскрытии макроса в «/ *»?

Вот соответствующий пример. Очевидно, это недопустимый C, но здесь я просто имею дело с препроцессором, поэтому код на самом деле не нужно компилировать. #define IDENTITY (x) x #define PREPEND_ASTERISK (x) ...
вопрос задан: 14 March 2016 20:01
0
ответов

Python Sort Algorithm [дубликат]

Я реализовал в Python разные алгоритмы сортировки, чтобы лучше понять их, связь. Код ошибки: 0x80072746. Трассировка стека: в System.Web.Hosting.ISAPIWorkerRequestInProcForIIS6.FlushCore (Byte [] статус, заголовок Byte [], Int32 keepConnected, Int32 t
вопрос задан: 14 March 2016 20:01
0
ответов

Составные литералы и макросы, похожие на функции: ошибка в gcc или стандарте C?

В C99 у нас есть составные литералы, и их можно передавать функциям, как в: f ((int [2]) {1, 2}); Однако, если f не функция, а скорее функционально-подобный макрос, gcc блокирует это из-за ...
вопрос задан: 10 March 2016 12:10
0
ответов

Могу ли я определить макросы препроцессора C с переменным числом аргументов с __VA_ARGS в середине вместо конца?

GCC жалуется, если я делаю это: #define M (obj, met, ..., contents) obj ## _ ## met (const void * self, __VA_ARGS__) {\ contents \} Я получил 2 причины: ошибка: отсутствует ')' в параметре макроса ...
вопрос задан: 29 February 2016 22:21
0
ответов

Может ли GCC предупредить меня об изменении полей const структуры в C99?

Я наткнулся на небольшую проблему, пытаясь сделать const-правильный код. Я хотел бы написать функцию, которая принимает указатель на const структуру, чтобы сказать компилятору "пожалуйста, скажите мне, если я ...
вопрос задан: 26 February 2016 20:32
0
ответов

Не могу понять, как рассчитать квадрат числа

Я нашел функцию, которая вычисляет квадрат числа: int p (int n) {int a [n]; // работает на C99 и выше return (& a) [n] - a; } Возвращает значение n2. Вопрос в том, как это сделать ...
вопрос задан: 28 December 2015 07:51
0
ответов

В чем разница между & ldquo; int & rdquo; и & ldquo; int_fast16_t & rdquo ;?

Насколько я понимаю, спецификация C говорит, что тип int должен быть наиболее эффективным типом на целевой платформе, которая содержит не менее 16 бит. Разве это не то, что определение C99 ...
вопрос задан: 5 December 2015 00:14
0
ответов

Определено ли поведение вычитания двух указателей NULL?

Определена ли разница двух переменных указателя, не являющихся недействительными (для C99 и / или C + +98), если они оба имеют значение NULL? Например, скажем, у меня есть структура буфера, которая выглядит следующим образом: struct buf {char ...
вопрос задан: 19 October 2015 13:52
0
ответов

Почему SCHAR_MIN определен как -127 в C99?

§5.2.4.2.1 C99 определяет SCHAR_MIN как -127 и SCHAR_MAX как 127. Разве диапазон для 8-битного целого числа со знаком не должен быть от -128 до +127? В файле limits.h для моего компилятора SCHAR_MIN определяется как (-1 << ((...
вопрос задан: 3 August 2015 02:57
0
ответов

C: приведение int к size_t

Как правильно преобразовать / привести int к size_t в C99 на обоих 32-битные и 64-битные платформы linux? Пример: int hash (void * key) {// ... } int main (int argc, char * argv []) {size_t ...
вопрос задан: 28 May 2015 13:04
0
ответов

Есть ли какие-либо различия между ANSI C и ISO C?

Я понимаю, что существует как стандарт ANSI, так и стандарт ISO для C. Есть ли различия между этими двумя стандартами? Если так, то кто они? И если нет разницы, тогда что ...
вопрос задан: 21 February 2015 20:32
0
ответов

Должен ли я использовать ANSI C (C89 )?

Это 2012 год. Я пишу код на C. Должен ли я все еще использовать C89? Существуют ли еще компиляторы, не поддерживающие C99? Я не против использования /**/ вместо //. Не уверен, что C89 запрещает...
вопрос задан: 21 February 2015 10:30
0
ответов

Что плохого в использовании турбо C?

Я всегда нахожу, что некоторые люди (большинство из Индии) используют турбо C. Я не могу найти причины использовать такой устаревший компилятор ... Но я не знаю, какие причины приводить, когда они пытаются сказать им ...
вопрос задан: 10 January 2014 08:36
0
ответов

Битовые поля и точки последовательности

Определена ли приведенная ниже программа для реализации, которая упаковывает f0 и f1 в один и тот же байт? struct S0 {беззнаковый f0: 4; со знаком f1: 4; } l_62; int main (void) {(l_62.f0 = 0) + (...
вопрос задан: 13 December 2013 13:57