Вопросы с тегом «c»

C - это язык программирования общего назначения, используемый для системного программирования (ОС и встраиваемых), библиотек, игр и кроссплатформенности. Этот тег следует использовать с общими вопросами, касающимися языка C, как это определено в стандарте ISO 9899 (последняя версия 9899: 2018, если не указано иное, а также для запросов, специфичных для версии, с c89, c99, c11 и т. Д.). C отличается от C ++ и не должен сочетаться с тэгом C ++ без разумной причины.

12
const char * const против const char *?
Я просматриваю несколько примеров программ, чтобы заново познакомиться с C ++, и столкнулся со следующим вопросом. Во-первых, вот пример кода: void print_string(const char * the_string) { cout << the_string << endl; } int main () { print_string("What's up?"); } В приведенном выше коде вместо параметра print_string мог быть const char …
110 c++  c 

9
Создание демона в Linux
В Linux я хочу добавить демон, который нельзя остановить и который отслеживает изменения файловой системы. Если обнаружены какие-либо изменения, он должен записать путь к консоли, с которой он был запущен, плюс новую строку. У меня уже есть почти готовый код изменения файловой системы, но я не могу понять, как создать …
110 c  linux  daemon 

4
Что такое uint_fast32_t и почему его следует использовать вместо обычных int и uint32_t?
Таким образом, причина для typedefпримитивных типов данных: ed заключается в том, чтобы абстрагироваться от низкоуровневого представления и облегчить понимание ( uint64_tвместо long longтипа, который составляет 8 байтов). Однако uint_fast32_tесть такой же, typedefкак uint32_t. Сделает ли использование «быстрой» версии программу быстрее?
110 c++  c  types 

30
Как перевернуть односвязный список, используя только два указателя?
Интересно, существует ли какая-то логика для изменения односвязного списка с использованием только двух указателей. Ниже используется для изменения одного связанного списка с использованием трех указателей , а именно p, q, r: struct node { int data; struct node *link; }; void reverse() { struct node *p = first, *q = …

18
Будет ли strlen вычисляться несколько раз при использовании в условии цикла?
Я не уверен, может ли следующий код вызывать избыточные вычисления или это зависит от компилятора? for (int i = 0; i < strlen(ss); ++i) { // blabla } Будет strlen()ли рассчитываться каждый раз при iувеличении?
109 c++  c  gcc  optimization  strlen 

4
Какое самое быстрое целочисленное деление поддерживает деление на ноль независимо от результата?
Резюме: Я ищу самый быстрый способ расчета (int) x / (int) y без исключения y==0. Вместо этого я просто хочу произвольный результат. Задний план: При кодировании алгоритмов обработки изображений мне часто приходится делить на (накопленное) альфа-значение. Самый простой вариант - это простой код на C с целочисленной арифметикой. Моя проблема …

9
sizeof одиночный член структуры в C
Я пытаюсь объявить структуру, которая зависит от другой структуры. Хочу использовать из sizeofсоображений безопасности / педантизма. typedef struct _parent { float calc ; char text[255] ; int used ; } parent_t ; Теперь я хочу объявить структуру child_tтого же размера, что и parent_t.text. Как я могу это сделать? (Псевдокод ниже.) …
109 c  struct  sizeof 


14
Возврат строки C из функции
Я пытаюсь вернуть строку C из функции, но она не работает. Вот мой код. char myFunction() { return "My String"; } В mainЯ зову это следующим образом : int main() { printf("%s", myFunction()); } Я также пробовал другие способы myFunction, но они не работают. Например: char myFunction() { char array[] …
109 c 

6
(A + B + C) ≠ (A + C + B) и переупорядочение компилятора
Добавление двух 32-битных целых чисел может привести к целочисленному переполнению: uint64_t u64_z = u32_x + u32_y; Этого переполнения можно избежать, если сначала преобразовать одно из 32-битных целых чисел или добавить к 64-битному целому числу. uint64_t u64_z = u32_x + u64_a + u32_y; Однако, если компилятор решит изменить порядок добавления: uint64_t …

11
Ошибка компиляции GCC с кодом> 2 ГБ
У меня огромное количество функций на общую сумму около 2,8 ГБ объектного кода (к сожалению, нет другого пути, научные вычисления ...) Когда я пытаюсь связать их, я получаю (ожидаемые) relocation truncated to fit: R_X86_64_32Sошибки, которые я надеялся обойти, указав флаг компилятора -mcmodel=medium. Все библиотеки, которые связаны, кроме того, что я …
108 c++  c  gcc  compiler-errors 

1
Что это за синтаксис «[0… 255] =» в C?
Ссылаясь на js0n.c Синтаксис кода следующий: static void *gostruct[] = { [0 ... 255] = &&l_bad, ['\t'] = &&l_loop, [' '] = &&l_loop, ['\r'] = &&l_loop, ['\n'] = &&l_loop, ['"'] = &&l_qup, [':'] = &&l_loop, [','] = &&l_loop, ['['] = &&l_up, [']'] = &&l_down, // tracking [] and {} individually …
108 c  gcc-extensions 

11
Как сгенерировать случайное целое число из диапазона
Это продолжение ранее опубликованного вопроса: Как сгенерировать случайное число на C? Я хочу иметь возможность генерировать случайное число из определенного диапазона, например от 1 до 6, чтобы имитировать стороны игральной кости. Как бы я это сделал?
108 c  random 

14
Как прочитать строчку из консоли на C?
Каков самый простой способ прочитать всю строку в программе консоли C Введенный текст может иметь переменную длину, и мы не можем делать никаких предположений относительно его содержания.
108 c  io  console  stdin 

6
Использование printf со строкой, не завершающейся нулем
Предположим, у вас есть строка, которая НЕ nullзаканчивается, и вы знаете ее точный размер, так как же вы можете распечатать эту строку с помощью printfC? Я припоминаю такой метод, но сейчас не могу узнать ...
108 c  string  format  printf 

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.