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

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

Ошибка реализации связанного списка в C

У меня есть программа, написанная на языке Си, и я борюсь с эффектом, который не могу понять. Приложение считывает последовательность слов в качестве ввода командной строки. При чтении входных данных он помещает одно за другим слова в список. А потом ...

Код, кажется, продолжает работать после инструкции return (в C)

Я пытаюсь создать алгоритм бинарного поиска и использовал два набора операторов if для случая, когда выборка четная/неравномерная. Неравномерная сторона в настоящее время работает по плану и возвращает true, четная сторона возвращает true, но затем п ...

Общая память не обновляется

У меня есть два процесса, которые разговаривают друг с другом, используя сопоставленный файл памяти и именованное событие. Код инициализации одинаков в обоих процессах. Обработка ошибок здесь не показана, но я проверяю все возвращаемые значения. HAN ...

Как глобализация 2 небольших массивов может привести к значительному снижению производительности?

У меня есть 2 небольших локальных массива: short int xpLeft [4], xpRight [4]; В тот момент, когда я делаю их глобальными (для доступа к ним в другом методе, но только в одном файле C (например, недоступном для других модулей)), производительност ...

Делать замечания медленнее компилируемых языках?

Этот вопрос был задан здесь несколько раз об интерпретируемом языке или R, но я ничего не нашел о скомпилированном языке, в частности C#. Судя по тому, что я читаю, это кажется незначительным, но все же вызывает очень небольшую задержку в интерпрета ...

Как использовать #ifdef для переключения типов данных

Я использую visual studio c++. Я хочу иметь возможность переключаться между double и long long. Как я могу использовать #ifdef в следующей программе? Я хочу использовать более простое решение для обработки случая множественного printf. //#define TYP ...

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

У меня есть двоичное число (например, 111001001). Я пытаюсь получить последние 5 цифр (01001). Как я могу это сделать? я думал сохранить каждую цифру в arrray, а затем получить значения с помощью цикла for. Но есть ли лучший способ? ...

LuaJit FFI возвращает строку из функции C в Lua?

Скажем, у меня есть такая функция C: __declspec(dllexport) const char* GetStr() { static char buff[32] // Fill the buffer with some string here return buff; } И этот простой модуль Lua: local mymodule = {} local ffi = require("ffi ...

Когда с свободной памяти структуры

У меня есть вопрос к структурам и типам данных C. У меня есть структура под названием test: struct test { char* c; char* c2; }; И я возвращаю эту структуру из функции: struct test a() { struct test t = { "yeah!", "string" }; ret ...

О.C файл И.H файл в C программировании?

Есть функция f в foo.c, я помещаю f Prototypes в заголовочный файл. И затем, есть 3 вопроса: должен ли заголовочный файл иметь имя foo.h? должны ли foo.c и foo.h находиться в одном каталоге ? Если ответ на оба вопроса нет , то есть заголовочны ...

Проверить, является ли дерево удовлетворяет черный-высота собственностью красный черный дерево

Как рекурсивно проверить, соблюдает ли данное красное черное дерево правило "каждый путь от узла до нулевой ссылки должен содержать одинаковое количество черных узлов". Я использую эту структуру: enum color = {RED, BLACK}; typedef struct node { ...

чтение констант pic18 rom с помощью C18

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

Какой алгоритм стоит за sleep ()?

Теперь я всегда задавался вопросом: как реализуется sleep ()? Если все дело в использовании API из операционной системы, то как же создается API ? Сводится ли все это к использованию специального машинного кода на процессоре? Нужен ли этому процесс ...

Может ли компилятор C генерировать исполняемый файл 64-битного типа, где указатели являются 32-битными?

Большинство программ хорошо вписывается в адресное пространство Существуют ли компиляторы / платформы, где я могу использовать регистры x64 и специальные инструкции, но сохранять 32-битные указатели для экономии памяти? Можно ли сделать это прозр ...

объявление функции не является прототипом

У меня есть библиотека, которую я создал, Милиб.c: #include <mylib.h> int testlib() { printf("Hello world\n"); return (0); } Милиб.h: #include <stdio.h> extern int testlib(); В моей программе я попытался вызвать эту би ...

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

Я изучал связанные списки, и рекурсивное определение структуры узла не давало мне покоя struct node { struct node *next; int data; }; Я думаю, что всегда предполагал, что поскольку указатель типизирован, он знает и начальный адрес, и объе ...

C макрос: превратить число в строку

У меня есть таблица, которая определяет внешний вид символов на дисплее размером 5x7 точек. Что-то вроде: extern UINT8 symbols[][5] = { {0x0,0x0,0x0,0x0,0x0}, {0x0,0x0,0x5F,0x0,0x0}, {0x0,0x7,0x0,0x7,0x0}, {0x14,0x7F,0x14,0x7F,0x14} ...

Функция pow C отказывается работать с переменной экспонентой

Допустим, у меня есть следующий фрагмент кода: int i; double value; for(i = 0; i < CONSTANT; i++) { value = (double)pow(2, i); } Попытка компиляции этого кода приводит к ошибке" неопределенная ссылка на `pow'". Включение или исключение math ...

Идеальная структура данных для отображения целых чисел в целые числа?

Я не буду вдаваться в подробности, но я пытаюсь реализовать алгоритм, аналогичный алгоритму Бойера-Мура-Хорспула , только с использованием шестнадцатеричных значений цвета вместо символов (т. е. существует гораздо больший диапазон). Следуя примеру В ...