Результаты поиска по запросу "c99"
(Я попытаюсь вернуться к этому, чтобы очистить его; я думаю, что там определенно есть некоторые ненужные макросы. У меня не было возможности взглянуть на более широкую проблему, которую вы описываете, поэтому я не уверен, решит ли это это тоже. Может быть, есть и более простой способ решения этой проблемы ... Я не особенно знаком с вариадными макросами. Это чистая предварительная обработка в mcpp.)
аюсь сгенерировать объявление функции с помощью макроса /* goal: generate int f(int a, float b) */ template<typename P> struct ptype; template<typename P> struct ptype<void(P)> { typedef P type; }; #define NAMEe #define COMMAe #define COMMA , ...
да, это работает, если «а» определено в той же единственной единице перевода (что имеет место с примером, который я привел). Однако, как только я пытаюсь «поделиться» этой встроенной функцией, поместив ее определение в собственный заголовок и включив этот заголовок из двух или более блоков перевода, она не работает, и вместо этого я получаю ошибку «множественное определение» a .. . Что дает?
на следующем упрощенномcc -std=c99 example.c файл:example.cполучает меня: inline void a() { } int main() { a(); return 0; }В функции `main ': example.c :(. text + 0x7): неопределенная ссылка на 'a' collect2: ld вернул 1 статус выхода Как я ...
Реализация деления с одинарной точностью как умножение с двойной точностью
ВопросДля компилятора C99, реализующего точную арифметику IEEE 754, сделайте значенияf, divisor типаfloat существуют такие, чтоf / divisor != (float)(f * (1.0 / divisor))? РЕДАКТИРОВАТЬ: Под «реализацией точной арифметики IEEE 754» я ...
Я думаю, у вас есть FAM, @DrBeco. Пример ответа larsmans поможет вам легко начать.
давно использую этот код, и он отлично работает, но это дало мне головную боль при его реализации. Он использует Flexible Array Member (FAM), также известный как Struct Hack. Теперь, когда у C99 есть возможность использования массива переменной ...
вариант.
вопрос связан с, но отличается отэтот [https://stackoverflow.com/questions/3082126/c99-faq-and-variable-length-arrays] о массивах переменной длины в C99. Ответы указывают на то, что одной из опасностей, связанных с выделением массивов переменной ...
И этот вопрос включал обоснование того, что FOO не использовался целую вечность.
твуетобщеизвестный [https://stackoverflow.com/questions/4054085/gcc-appending-to-va-args] проблема [http://gcc.gnu.org/onlinedocs/cpp/Variadic-Macros.html]с пустыми аргументами для variadic макросов в C99. пример: #define FOO(...) ...
Какие функции C99 считаются вредными или не поддерживаются [закрыто]
Я обычно пишу код C в C89, теперь некоторые функции C99 (например,intxx_t или же__VA_ARGS__ или жеsnprintf) очень полезны и могут быть даже жизненно важны. Прежде чем перейти к моим требованиям от C89 до C99, я хотел узнать, какие функции C99 ...
Существует ли макрос препроцессора для обнаружения C99 на разных платформах?
C ++ имеет__cplusplus Определение препроцессора, позволяющее определить версию. Есть ли что-нибудь подобное для C? Желательно, чтобы он был переносимым для версий XCode, GCC и Visual Studio.
Так что это специальное правило, позволяющее складывать строковые литералы. Я не знаю ничего в стандарте, что говорит то же самое для других объектов.
я о строковых литералах, стандарт C99 гласит (6.4.5.6): Не определено, различаются ли эти массивы при условии, что их элементы имеют соответствующие значения. Если программа пытается изменить такой массив, поведение не определено. Я не смог ...
Последние 2 ссылки одинаковы (в основном это просто список макросов)
у рекомендовать использование<inttypes.h> кто-то делаетprintf со смешанными 32/64 битными сборками. Я попытался найти на Google вводную или учебную страницу с несколькими примерами и инструкциями по использованию, но не смог найти. Может ...