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

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

9
Почему деление модуля (%) работает только с целыми числами?
Недавно я столкнулся с проблемой, которую можно было легко решить с помощью модульного деления, но ввод был с плавающей точкой: Учитывая периодическую функцию (например, sin) и компьютерную функцию, которая может вычислять ее только в пределах диапазона периодов (например, [-π, π]), создайте функцию, которая может обрабатывать любой ввод. «Очевидное» решение выглядит …
79 c++  c 

9
Как мне структурировать сложные проекты на C? [закрыто]
Закрыто . Этот вопрос должен быть более конкретным . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он фокусировался только на одной проблеме, отредактировав этот пост . Закрыт 5 лет назад . Уточните этот вопрос У меня немного больше, чем навыки C на начальном …

9
Как получить 100% загрузку ЦП из программы на C
Это довольно интересный вопрос, поэтому позвольте мне задать сцену. Я работаю в Национальном музее вычислительной техники, и нам только что удалось получить суперкомпьютер Cray Y-MP EL 1992 года выпуска, и мы действительно хотим увидеть, насколько быстро он может работать! Мы решили, что лучший способ сделать это - написать простую программу …
79 c  windows  linux  performance  cray 


5
Почему компилятор выдает предупреждение: «отсутствует инициализатор»? Разве структура не инициализирована?
Я создаю своего рода интерфейс для программы. Для запуска программы я использую вызов CreateProcess(), который, помимо прочего, получает указатель на STARTUPINFOструктуру. Чтобы инициализировать структуру, которую я делал: STARTUPINFO startupInfo = {0}; // Or even '\0'. startupInfo.cb = sizeof(startupInfo); При компиляции программы с включением этих наборов предупреждений GCC -Wall -Wextraвыдает предупреждение …
79 c  winapi  gcc 


24
Поиск в отсортированном и повернутом массиве
Готовясь к собеседованию, я наткнулся на интересный вопрос: Вам был предоставлен массив, который сортируется, а затем вращается. Например: Пусть arr = [1,2,3,4,5], что отсортировано Дважды поверните его вправо, чтобы дать [4,5,1,2,3]. Теперь, как лучше всего искать в этом отсортированном + повернутом массиве? Можно повернуть массив и затем выполнить двоичный поиск. …
79 c++  c  arrays  algorithm 

8
Вычитание упакованных 8-битных целых чисел в 64-битное целое на 1 параллельно, SWAR без аппаратного SIMD
Если у меня есть 64-разрядное целое число, которое я интерпретирую как массив упакованных 8-разрядных целых чисел с 8 элементами. Мне нужно вычесть константу 1из каждого упакованного целого числа при обработке переполнения без влияния одного элемента на результат другого элемента. У меня есть этот код на данный момент, и он работает, …
77 c++  c  bit-manipulation  simd  swar 

7
Могу ли я использовать NULL в качестве замены для значения 0?
Могу ли я использовать NULLуказатель в качестве замены для значения 0? Или что-то не так в этом? Как, например: int i = NULL; как замена для: int i = 0; В качестве эксперимента я скомпилировал следующий код: #include <stdio.h> int main(void) { int i = NULL; printf("%d",i); return 0; } …

10
Не могу скомпилировать C программу на Mac после обновления до Catalina 10.15
Есть предыдущий вопрос: « Не могу скомпилировать программу C на Mac после обновления до Mojave» , и ответы на него охватили большинство вариантов того, что идет не так. Теперь, по состоянию на понедельник 2019-10-07, вы можете перейти на macOS Catalina 10.15. Еще раз, во время обновления /usr/includeкаталог был снесен обновлением, …
64 c  xcode  macos  gcc  macos-catalina 

4
Зачем нужны пустые скобки '{}' в конце массива структур?
Я ударил некоторых с код в ядре Linux: static struct ctl_table ip_ct_sysctl_table[] = { { .procname = "ip_conntrack_max", .maxlen = sizeof(int), .mode = 0644, .proc_handler = proc_dointvec, }, // ... { .procname = "ip_conntrack_log_invalid", .maxlen = sizeof(unsigned int), .mode = 0644, .proc_handler = proc_dointvec_minmax, .extra1 = &log_invalid_proto_min, .extra2 = &log_invalid_proto_max, …

4
Что делает ((void (*) ()) buf) (); жадный?
Я решаю проблему бинарной эксплуатации на picoCTF и наткнулся на этот фрагмент кода: ((void (*)())buf)(); где bufмассив символов. Я решил проблему, но не могу понять, что именно он делает. Я посмотрел на эту ветку, но не смог разобрать. Что ((void (*)())buf)();значит?

4
Генерирует предупреждение компилятора, если запятая инициализации массива const char * отсутствует
Я часто использую строковые литеральные таблицы в своем C-коде. Эти таблицы выглядят примерно так: static const char* const stateNames[STATE_AMOUNT] = { "Init state", "Run state", "Pause state", "Error state", }; Проблема с приведенным выше кодом заключается в том, что если таблица становится длиннее и изменяется в процессе разработки, я время …
53 c  initialization 

6
(x | y) - y, почему это не может быть просто x или даже `x | 0`
Я читал код ядра, и в одном месте я видел выражение внутри ifоператора, как if (value == (SPINLOCK_SHARED | 1) - 1) { ............ } где SPINLOCK_SHARED = 0x80000000предопределенная константа. Интересно, зачем нам (SPINLOCK_SHARED | 1) - 1- для преобразования типов? результат выражения будет 80000000 - так же, как 0x80000000, …

5
Порядок оценки индексов массива (по сравнению с выражением) в C
Глядя на этот код: static int global_var = 0; int update_three(int val) { global_var = val; return 3; } int main() { int arr[5]; arr[global_var] = update_three(2); } Какая запись массива обновляется? 0 или 2? Есть ли часть в спецификации C, которая указывает приоритет работы в этом конкретном случае?

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