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

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

11
максимальное значение целого числа
В C целое число (для 32-битного компьютера) составляет 32 бита, и оно варьируется от -32 768 до + 32 767. В Java целое число (long) также составляет 32 бита, но оно варьируется от -2 147 483 648 до + 2 147 483 647. Я не понимаю, как диапазон отличается в …
292 java  c  integer  max  bit 

19
Обнаружение лишних #include в C / C ++?
Я часто нахожу, что раздел заголовков файла постоянно увеличивается и увеличивается, но он никогда не уменьшается. В течение жизни исходного файла классы могли перемещаться и подвергаться рефакторингу, и вполне возможно, что есть немало тех, #includesкоторые не должны быть там и больше. Оставив их там, можно только продлить время компиляции и …

19
Действительно ли умножение и деление с использованием операторов сдвига в C быстрее?
Умножение и деление может быть достигнуто с помощью битовых операторов, например i*2 = i<<1 i*3 = (i<<1) + i; i*10 = (i<<3) + (i<<1) и так далее. Действительно ли быстрее использовать скажем (i<<3)+(i<<1)умножить на 10, чем i*10напрямую? Есть ли какие-либо входные данные, которые не могут быть умножены или разделены таким …

10
C / C ++ включает порядок заголовочных файлов
В каком порядке должны быть указаны включаемые файлы, т.е. каковы причины включения одного заголовка перед другим? Например, системные файлы STL и Boost идут до или после локальных включаемых файлов?
288 c++  c 

17
Почему я получаю ошибку сегментации при записи в «char * s», инициализированный строковым литералом, но не «char s []»?
Следующий код получает ошибку сегмента в строке 2: char *str = "string"; str[0] = 'z'; // could be also written as *str = 'z' printf("%s\n", str); Пока это работает на отлично char str[] = "string"; str[0] = 'z'; printf("%s\n", str); Протестировано с MSVC и GCC.


8
Почему strlen glibc должен быть настолько сложным, чтобы быстро бегать?
Я просматривал strlenкод здесь и мне было интересно, действительно ли нужны оптимизации, используемые в коде? Например, почему что-то вроде следующего не работает одинаково хорошо или лучше? unsigned long strlen(char s[]) { unsigned long i; for (i = 0; s[i] != '\0'; i++) continue; return i; } Разве не проще и …

20
Написать приложения на C или C ++ для Android? [закрыто]
В настоящее время этот вопрос не очень подходит для нашего формата вопросов и ответов. Мы ожидаем, что ответы будут подтверждены фактами, ссылками или опытом, но этот вопрос, скорее всего, вызовет дебаты, споры, опрос или расширенное обсуждение. Если вы считаете, что этот вопрос можно улучшить и, возможно, вновь открыть, обратитесь за …
286 c++  c  android 

12
Упаковка библиотеки C в Python: C, Cython или ctypes?
Я хочу вызвать библиотеку C из приложения Python. Я не хочу оборачивать весь API, только функции и типы данных, которые имеют отношение к моему случаю. На мой взгляд, у меня есть три варианта: Создайте действительный модуль расширения на C. Вероятно, это излишне, и я также хотел бы избежать накладных расходов …
284 python  c  ctypes  cython 

18
Каково обоснование для строк с нулевым символом в конце?
Столько, сколько я люблю C и C ++, я не могу не почесать голову при выборе строк с нулевым окончанием: Длина строки с префиксом (т.е. Паскаль) существовала до C Строки с префиксом длины ускоряют несколько алгоритмов, обеспечивая постоянный поиск по времени. Строки с префиксом длины затрудняют ошибки переполнения буфера. Даже …
281 c++  c  string  null-terminated 

4
Когда-то, когда> был быстрее, чем <… Подожди, что?
Я читаю потрясающий учебник OpenGL . Это действительно здорово, поверь мне. Тема, которой я сейчас занимаюсь, это Z-буфер. Помимо объяснения, что это такое, автор упоминает, что мы можем выполнять пользовательские тесты глубины, такие как GL_LESS, GL_ALWAYS и т. Д. Он также объясняет, что фактическое значение значений глубины (которое является верхним, …
280 c  optimization  opengl  cpu  gpu 



11
Ядро сброшено, но файл ядра не находится в текущем каталоге?
Во время работы программы на Си написано «(core dumped)», но я не вижу никаких файлов по текущему пути. Я установил и проверил ulimit: ulimit -c unlimited ulimit -a Я также пытался найти файл с именем "core", но не получил файл дампа ядра? Любая помощь, где мой основной файл?
277 c  linux  coredump 

6
Когда я должен использовать mmap для доступа к файлам?
Среды POSIX предоставляют как минимум два способа доступа к файлам. Там в стандартных системных вызовах open(), read(), write()и друзья, но есть также возможность использования mmap()для отображения файла в виртуальную память. Когда предпочтительнее использовать один над другим? В чем заключаются их индивидуальные преимущества, включая два интерфейса?
276 c  file-io  posix  mmap 

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