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

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

4
Определены ли такие типы, как uint32, int32, uint64, int64 в каком-либо заголовке stdlib?
Я часто вижу исходный код, использующий такие типы, как uint32, uint64, и мне интересно, должны ли они определяться программистом в коде приложения или они определены в стандартном заголовке библиотеки. Как лучше всего включить эти типы в исходный код моего приложения?
95 c  libc 

2
Неожиданное разрешение exec от mmap, когда файлы сборки включены в проект
Я бьюсь головой об стену с этим. В моем проекте, когда я выделяю память с mmapпомощью mapping ( /proc/self/maps), видно, что это читаемая и исполняемая область, несмотря на то, что я запрашивал только читаемую память. Изучив strace (который выглядел хорошо) и другие средства отладки, я смог определить единственное, что, по-видимому, …
94 c  linux  assembly  mmap 

13
C # vs C - большая разница в производительности
Я нахожу огромные различия в производительности между аналогичным кодом на C и C #. Код C: #include <stdio.h> #include <time.h> #include <math.h> main() { int i; double root; clock_t start = clock(); for (i = 0 ; i <= 100000000; i++){ root = sqrt(i); } printf("Time elapsed: %f\n", ((double)clock() - …
94 c#  c  performance 

9
Что не так с кодом C 1988 года?
Я пытаюсь скомпилировать этот фрагмент кода из книги «Язык программирования C» (K&R). Это простая версия программы UNIX wc: #include <stdio.h> #define IN 1; /* inside a word */ #define OUT 0; /* outside a word */ /* count lines, words and characters in input */ main() { int c, nl, …
94 c 

17
В чем смысл указателей на функции?
Мне сложно увидеть полезность указателей на функции. Я предполагаю, что в некоторых случаях это может быть полезно (в конце концов, они существуют), но я не могу придумать случая, когда лучше или неизбежно использовать указатель на функцию. Не могли бы вы привести пример правильного использования указателей на функции (на C или …
94 c++  c  function  pointers  c++-faq 

12
Как рассчитать использование ЦП процессом по PID в Linux из C?
Я хочу программно [на C] вычислить процент использования ЦП для данного идентификатора процесса в Linux. Как мы можем получить процент использования ЦП в реальном времени для данного процесса? Чтобы прояснить ситуацию: Я смогу определить использование ЦП для предоставленного идентификатора процесса или процесса. Процесс не обязательно должен быть дочерним процессом. Мне …
94 c  linux  cpu-usage 

7
Как скомпилировать без предупреждений, рассматриваемых как ошибки?
Проблема в том, что тот же код, который хорошо компилируется в Windows, не может быть скомпилирован в Ubuntu. Каждый раз, когда я получаю эту ошибку: cc1: warnings being treated as errors Это большая база кода, и мне не нравится исправлять все предупреждения. Есть ли способ успешно скомпилировать, несмотря на предупреждения?

10
Как мне создать «разделитель» в структуре памяти класса C ++?
Проблема В низкоуровневом встроенном контексте « голого металла» я хотел бы создать пустое пространство в памяти внутри структуры C ++ без какого-либо имени, чтобы запретить пользователю доступ к такой области памяти. Прямо сейчас я добился этого, поместив уродливое uint32_t :96;битовое поле, которое удобно заменит три слова, но вызовет предупреждение от …

3
Как установить точки останова в будущих разделяемых библиотеках с помощью флага команды
Я пытаюсь автоматизировать сеанс gdb с помощью --commandфлага. Я пытаюсь установить точку останова для функции в разделяемой библиотеке (эквивалент DLL в Unix). Мой cmds.gdb выглядит так: set args /home/shlomi/conf/bugs/kde/font-break.txt b IA__FcFontMatch r Однако я получаю следующее: shlomi: ~ / progs / bugs-external / kde / font-break $ gdb --command = …
94 c++  c  linux  unix  gdb 


6
Когда мне следует использовать malloc в C, а когда нет?
Я понимаю, как работает malloc (). Мой вопрос, я увижу такие вещи: #define A_MEGABYTE (1024 * 1024) char *some_memory; size_t size_to_allocate = A_MEGABYTE; some_memory = (char *)malloc(size_to_allocate); sprintf(some_memory, "Hello World"); printf("%s\n", some_memory); free(some_memory); Я опустил проверку ошибок для краткости. Мой вопрос: не могли бы вы просто сделать это, инициализировав указатель …

7
В C, как мне читать текстовый файл и печатать все строки
У меня есть текстовый файл с именем test.txt Я хочу написать программу на C, которая может читать этот файл и выводить содержимое на консоль (предположим, что файл содержит только текст ASCII). Я не знаю, как получить размер моей строковой переменной. Как это: char str[999]; FILE * file; file = fopen( …
94 c  file  text-files 

2
Каков результат + = в C и C ++?
У меня есть такой код: #include <stdio.h> int main(int argc, char **argv) { int i = 0; (i+=10)+=10; printf("i = %d\n", i); return 0; } Если я попытаюсь скомпилировать его как источник C с помощью gcc, я получаю сообщение об ошибке: error: lvalue required as left operand of assignment Но …
93 c++  c 

6
Что делает extern inline?
Я понимаю, что inlineсамо по себе это предложение для компилятора, и по своему усмотрению он может или не может встроить функцию, а также будет создавать объектный код с возможностью связывания. Я думаю, что это static inlineделает то же самое (может или не может быть встроенным), но не будет создавать связываемый …


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