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

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

10
Что представляет собой тип, за которым следует _t (underscore-t)?
Это кажется простым вопросом, но я не могу найти его с помощью поиска переполнения стека или Google. Что означает тип, за которым следует _tсреднее? Такие как int_t anInt; Я вижу, что многое в коде C предназначено для тесного взаимодействия с оборудованием - я не могу не думать, что они связаны …

10
Как предотвратить SIGPIPE (или обращаться с ними правильно)
У меня есть небольшая серверная программа, которая принимает соединения через TCP или локальный сокет UNIX, читает простую команду и, в зависимости от команды, отправляет ответ. Проблема в том, что клиент может быть не заинтересован в ответе иногда и выходит рано, поэтому запись в этот сокет вызовет SIGPIPE и приведет к …
261 c  io  signals  broken-pipe  sigpipe 

12
Как преобразовать строку в целое число в C?
Я пытаюсь выяснить, есть ли альтернативный способ преобразования строки в целое число в C. Я регулярно копирую следующее в своем коде. char s[] = "45"; int num = atoi(s); Так есть ли лучший способ или другой путь?
260 c  string  atoi 

12
Использование оператора стрелки (->) в C
Я читаю книгу под названием «Обучи себя C за 21 день» (я уже выучил Java и C #, поэтому я двигаюсь гораздо быстрее). Я читал главу об указателях, и оператор-> (стрелка) появился без объяснения причин. Я думаю, что он используется для вызова членов и функций (например, эквивалент оператора (точка), но …
257 c  pointers  syntax 

3
Почему malloc + memset медленнее, чем calloc?
Известно, что callocон отличается от mallocтого, что инициализирует выделенную память. С callocпомощью памяти устанавливается на ноль. С mallocпамятью не очищается. Таким образом , в повседневной работе, я считаю , callocкак malloc+ memset. Кстати, ради интереса я написал следующий код для теста. Результат сбивает с толку. Код 1: #include<stdio.h> #include<stdlib.h> #define …
256 c  malloc 

10
Использование GCC для создания читаемой сборки?
Мне было интересно, как использовать GCC в исходном файле C для вывода мнемонической версии машинного кода, чтобы я мог видеть, во что компилируется мой код. Вы можете сделать это с Java, но я не смог найти способ с GCC. Я пытаюсь переписать метод C на ассемблере и посмотреть, как это …
256 c  gcc  assembly 


15
Цель Союзов в C и C ++
Я раньше использовал союзы с комфортом; Сегодня я был встревожен, когда я прочитал этот пост и узнал, что этот код union ARGB { uint32_t colour; struct componentsTag { uint8_t b; uint8_t g; uint8_t r; uint8_t a; } components; } pixel; pixel.colour = 0xff040201; // ARGB::colour is the active member from …
254 c++  c  unions  type-punning 

11
Почему вы должны связать математическую библиотеку в C?
Если я включаю <stdlib.h>или <stdio.h>в программу на C, мне не нужно связывать их при компиляции, но я должен ссылаться , например <math.h>, с -lmпомощью gcc: gcc test.c -o test -lm Что является причиной этого? Почему я должен явно связать математическую библиотеку, а не другие библиотеки?
254 c  compilation  math.h 


6
Почему 0 <-0x80000000?
У меня ниже простая программа: #include &lt;stdio.h&gt; #define INT32_MIN (-0x80000000) int main(void) { long long bal = 0; if(bal &lt; INT32_MIN ) { printf("Failed!!!"); } else { printf("Success!!!"); } return 0; } Условие if(bal &lt; INT32_MIN )всегда верно. Как это возможно? Он отлично работает, если я изменю макрос на: #define …

10
Что означает {0} при инициализации объекта?
Когда {0}это используется для инициализации объекта, что это значит? Я нигде не могу найти никаких ссылок {0}, и из-за фигурных скобок поиск в Google не помогает. Пример кода: SHELLEXECUTEINFO sexi = {0}; // what does this do? sexi.cbSize = sizeof(SHELLEXECUTEINFO); sexi.hwnd = NULL; sexi.fMask = SEE_MASK_NOCLOSEPROCESS; sexi.lpFile = lpFile.c_str(); sexi.lpParameters …
252 c++  c 



22
Как C вычисляет sin () и другие математические функции?
Я просматривал разборки .NET и исходный код GCC, но, похоже, нигде не могу найти фактическую реализацию sin()и другие математические функции ... кажется, что они всегда ссылаются на что-то другое. Может ли кто-нибудь помочь мне найти их? Я чувствую, что это маловероятно , что все аппаратное обеспечение, C будет работать на …
248 c  math  trigonometry 

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