Что Тьюринг-полного макро-языки Си/Си++

Преамбула Один из главных моментов, который шепелявые утверждают в качестве бонуса по сравнению с более "мейнстрим" языками, заключается в том, что макроязык на самом деле является полным Тьюрингом (я не могу вспомнить, был ли это Пол Грэм в On Lis ...

На каком уровне применяется оптимизация компилятора?

Мой вопрос в том, на каком уровне компилятор применяет оптимизацию. Это на уровне разных файлов кода? Если это так, то разве это не более неэффективно, чем, скажем, если бы это применялось по всему коду? Во-вторых, что происходит, когда один из исход ...

Незнакомый синтаксис для инструкции "imul" в сборке x86

Я написал очень простую C-функцию под названием "multby22", которая делает именно то, что подразумевает ее название: она занимает много времени и возвращает это время, умноженное на 22. (Я знаю, что это бессмысленная функция,но я написал ее, чтобы по ...

Как давать значения массивам в c

Я получаю ошибку в следующей программе. Я не могу понять, почему я не могу хранить значения в массиве main() { int A[10]; A = {3,1,2,3,4,1,5,8,9,0}; printArr(A,10); printf("\n"); BubbleSort(A,10); printArr(A,10); print ...

длина-ва списке, когда через список аргументов переменной?

Есть ли способ вычислить длину va_list? Во всех примерах, которые я видел, количество переменных параметров задается явно. ...

Построение модуля ядра из нескольких исходных файлов

У меня возникли некоторые проблемы с проклятием моего существования, файлом Makefile. Я пытаюсь создать модуль ядра (.файл ko) называется " can.нокаут". Я компилирую дюжину или около того исходных файлов: TARGET = can OBJS = can_core.o can_open.o c ...

Как писать и читать из именованного канала в языке Си?

У меня есть 2 программы (пишу.В и читать.с). Я хочу непрерывно писать в именованный канал со стандартного входа и читать с него на другом конце (и записывать в стандартный выход). Я кое-что сделал, но это работает неправильно. Программа на другом кон ...

Как вывести выходные данные после ввода некоторых целых чисел, разделенных новой строкой, без использования массивов?

Задача: t обозначает количество входных данных, за которыми следуют строки t, каждая из которых содержит одно целое число n. Для каждого целого числа n, заданного на входе, выведите строку со значением n. Пример ввода: 4 1 2 5 3 П ...

Может кто - нибудь помочь мне проанализировать эти результаты valgrind?

Я написал программу C на linux для обработки большого количества данных, она работает нормально большую часть времени. Но при обработке набора конкретных данных он всегда говорил мне об ошибке "ошибка сегментации", я пытался использовать gdb без успе ...

Java JNI C отладчик

Есть ли отладчик, который помогает отлаживать программу Java JNI вместе с библиотекой C? Я должен иметь возможность отлаживать программу, начиная со static void main в Java, и продолжать отлаживать и устанавливать точки останова в собственной функци ...

Психотерапевт Emacs: где я могу найти код?

Я хотел бы перенести психотерапевта Emacs на C :), но я хотел бы знать, где я могу найти исходный код. Чего я боюсь, так это того, что она написана на Шепелявом языке. Если это так, я думаю, что мне не повезет перенести его на C, если только кто-то у ...

Как избежать нарушения перекрестных потоков в расширении Ruby?

Я пишу расширение C, обеспечивающее интерфейс между Ruby и асинхронной библиотекой ввода-вывода. При выполнении тестов над моим кодом, я часто получаю ошибки, включая (но не ограничиваясь): [BUG] cross-thread violation in rb_thread_schedule() Аси ...

Eclipse C++ CDT Kepler не показывает консольный вывод до конца выполнения

После того, как я создаю программу и запускаю ее, консоль остается пустой, пока она ждет моих подсказок scanf, после нажатия кнопки "Enter" в окне консоли в Eclipse все распечатывается, почти как если бы весь буфер был сохранен где-то и затем распеча ...

Тестирование на бесконечность в CUDA

В программе CUDA я недавно переключился с тестирования на inifinity с помощью return x==INFINITY || x==-INFINITY; Где INFINITY - из математики.h, to return !isfinite(x); И был весьма удивлен, получив разные результаты. gnu.org предполагает, ...

Шум после изменения громкости в QAudioOutput

Я пытаюсь воспроизвести звук с помощью QAudioOutput и wav в "raw-формате". После таймаута таймера (каждые 50 мс) я делаю следующее: QByteArray TempSBuffer; short int *hi; // Check if wav has reached their end and reset its position to the beginnin ...

Неправильно ли размещать встроенные функции в заголовках C?

Я создаю Проект C для нескольких компиляторов, некоторые из которых являются устаревшими компиляторами, которые, похоже, не имеют поддержки link time inlining, поэтому казалось логичным разместить функции static inline непосредственно в заголовках и ...

Функция c isupper()

В настоящее время я читаю "The C Programming Language 2nd edition", и мне не совсем понятно это упражнение: Такие функции, как isupper, могут быть реализованы для экономии места или времени. Исследуйте обе возможности. Как я могу реализовать ...

Можно ли при компиляции указать путь к файлу #include относительно текущего каталога пользователя?

Я знаю, что можно указать путь к файлу #include либо относительно каталога, в котором находится файл, как абсолютный путь к файлу, либо относительно любого из каталогов в системной переменной $PATH. Есть ли способ вместо этого указать его относительн ...

Вызов функции cublas cublasSgemv

Спасибо за @ hubs, при вызове cublasSgemv следует заметить, что CUBLAS_OP_T также является вектором транспонирования. /*Я изучаю cuda и cublas в течение месяца, и я хочу проверить производительность cublas для дальнейшего использования. Но в моем мат ...

Правильный способ инициализации элемента const динамически выделенной структуры

У меня есть эти 2 структуры: struct Params { int a; int b; }; struct Foo { const struct Params settings; int state; }; Элемент settings является const как намек на то, что он не должен быть изменен после того, как struct Foo был ...