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

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

13
Является ли D надежной альтернативой Java и C ++? [закрыто]
В настоящее время этот вопрос не очень подходит для нашего формата вопросов и ответов. Мы ожидаем, что ответы будут подтверждены фактами, ссылками или опытом, но этот вопрос, скорее всего, вызовет дебаты, споры, опрос или расширенное обсуждение. Если вы считаете, что этот вопрос можно улучшить и, возможно, вновь открыть, обратитесь за …
163 java  c++  c  d 


3
Почему преобразование из строковой константы в 'char *' допустимо в C, но недопустимо в C ++
Стандарт C ++ 11 (ISO / IEC 14882: 2011) гласит § C.1.1: char* p = "abc"; // valid in C, invalid in C++ Для C ++ все нормально, так как указатель на строковый литерал вреден, поскольку любая попытка его изменить приводит к сбою. Но почему это действительно в C? C …
163 c++  c  string  c++11  char 

8
Строковые литералы: куда они идут?
Меня интересует, где строковые литералы распределяются / хранятся. Я нашел один интригующий ответ здесь , говоря: Определение строки inline фактически встраивает данные в саму программу и не может быть изменено (некоторые компиляторы допускают это умным трюком, не беспокойтесь). Но это было связано с C ++, не говоря уже о том, …

1
Сборка .so файла из .c файла с использованием командной строки gcc
Я пытаюсь создать проект hello world для динамических библиотек Linux (файлы .so). Итак, у меня есть файл hello.c: #include <stdio.h> void hello() { printf("Hello world!\n"); } Как мне создать .so файл, который экспортирует hello(), используя gcc из командной строки?
162 c  linux  gcc  shared-libraries 

15
Как избежать переполнения в expr. A * B - C * D
Мне нужно вычислить выражение, которое выглядит следующим образом:, A*B - C*Dгде их типы: signed long long int A, B, C, D; Каждое число может быть очень большим (не выходя за пределы его типа). Хотя A*Bможет вызвать переполнение, в то же время выражение A*B - C*Dможет быть очень маленьким. Как я …
161 c++  c  integer-overflow 

2
Почему алфавит разделен на несколько диапазонов в этом C-коде?
В пользовательской библиотеке я увидел реализацию: inline int is_upper_alpha(char chValue) { if (((chValue >= 'A') && (chValue <= 'I')) || ((chValue >= 'J') && (chValue <= 'R')) || ((chValue >= 'S') && (chValue <= 'Z'))) return 1; return 0; } Это пасхальное яйцо или в чем преимущества стандартного метода Си …
161 c++  c  character  toupper 

4
Почему предпочтение start + (end - start) / 2 более (start + end) / 2 при вычислении середины массива?
Я видел, как программисты используют формулу mid = start + (end - start) / 2 вместо использования более простой формулы mid = (start + end) / 2 для нахождения среднего элемента в массиве или списке. Почему они используют первый?
160 c  algorithm 


14
Самый быстрый способ захвата экрана в Windows
Я хочу написать программу для экрана для платформы Windows, но не знаю, как сделать снимок экрана. Единственный известный мне метод - это использовать GDI, но мне любопытно, есть ли другие способы сделать это, и, если есть, то какие издержки наименьшие? Скорость является приоритетом. Программа для создания скринкастинга будет предназначена для …
159 c++  c  windows 

13
Что на самом деле означает «память, выделенная во время компиляции»?
В языках программирования, таких как C и C ++, люди часто ссылаются на статическое и динамическое распределение памяти. Я понимаю концепцию, но фраза «Вся память была выделена (зарезервирована) во время компиляции» всегда смущает меня. Компиляция, насколько я понимаю, преобразует код высокого уровня C / C ++ в машинный язык и …

14
Не могу скомпилировать программу C на Mac после обновления до Мохаве
Я использовал команду gcc на терминале для компиляции программ на Си, но внезапно, после обновления ОС моего Mac (до macOS 10.14 Mojave и XCode 10.0), я начал получать сообщение: test.c:8:10: fatal error: stdio.h: No such file or directory #include <stdio.h> ^~~~~~~~~ compilation terminated. Я уже установил gcc, так как я …
159 c  macos  gcc  terminal 

1
Почему в книге «Язык программирования C» написано, что я должен вызывать malloc?
Сегодня я достиг страницы 167 языка программирования Си (второе издание Брайан В. Керниган и Деннис М. Ричи) и обнаружил, что автор говорит, что я должен сыграть malloc. Вот часть из книги: 7.8.5 Управление хранением Функции malloc и calloc динамически получают блоки памяти. void *malloc(size_t n) возвращает указатель на n байтов …

3
объявление функции не является прототипом
У меня есть библиотека, которую я создал, mylib.c: #include <mylib.h> int testlib() { printf("Hello world\n"); return (0); } mylib.h: #include <stdio.h> extern int testlib(); В моей программе я попытался вызвать эту библиотечную функцию: myprogram.c: #include <mylib.h> int main (int argc, char *argv[]) { testlib(); return (0); } Когда я пытаюсь …
158 c  gcc 


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