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

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

11
#pragma pack effect
Мне было интересно, может ли кто-нибудь объяснить мне, что #pragma packделает оператор препроцессора, и, что более важно, почему он захочет его использовать. Я проверил страницу MSDN , которая дала некоторое представление, но я надеялся услышать больше от людей с опытом. Я видел это в коде раньше, хотя я не могу …

8
Разница между fprintf, printf и sprintf?
Может кто - нибудь объяснить на простом английском языке о различиях между printf, fprintfи sprintfс примерами? В каком потоке это? Я действительно запутался между тремя из них, когда читал о "Обработка файлов в C".
233 c  io  stream  printf 


30
Утечки памяти когда-либо в порядке? [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 2 года назад . Улучшить этот вопрос Допустимо ли когда-нибудь иметь утечку памяти в вашем приложении на …
231 c++  c  memory-leaks 

11
Почему функция get так опасна, что ее нельзя использовать?
Когда я пытаюсь скомпилировать код C, который использует gets()функцию с GCC, я получаю это предупреждение: (.text + 0x34): предупреждение: функция `gets 'опасна и не должна использоваться. Я помню, что это как-то связано с защитой стека и безопасностью, но я точно не знаю, почему. Как я могу удалить это предупреждение и …
229 c  fgets  buffer-overflow  gets 

5
Почему GCC использует умножение на странное число при реализации целочисленного деления?
Я читал о div и mulсборочных операциях, и я решил , чтобы увидеть их в действии, написав простую программу в C: Файл деление.c #include <stdlib.h> #include <stdio.h> int main() { size_t i = 9; size_t j = i / 5; printf("%zu\n",j); return 0; } И затем генерирование кода на ассемблере …



8
Что такое базовый указатель и указатель стека? На что они указывают?
Используя этот пример из Википедии, в которой DrawSquare () вызывает DrawLine (), (Обратите внимание, что эта диаграмма имеет высокие адреса внизу и низкие адреса вверху.) Может ли кто-нибудь объяснить мне, что ebpи espв этом контексте? Из того, что я вижу, я бы сказал, что указатель стека всегда указывает на вершину …
225 c++  c  assembly  x86 

10
Насколько опасен доступ к массиву за пределами?
Насколько опасен доступ к массиву за его пределами (в C)? Иногда может случиться, что я читаю извне массива (теперь я понимаю, что затем я получаю доступ к памяти, используемой некоторыми другими частями моей программы или даже за ее пределами), или я пытаюсь установить значение для индекса вне массива. Программа иногда …
221 c  arrays  memory 



9
Нужно ли явно обрабатывать отрицательные числа или ноль при суммировании квадратов?
У меня недавно был тест в моем классе. Одной из проблем было следующее: Учитывая число n , напишите функцию на C / C ++, которая возвращает сумму цифр квадрата числа . (Важно следующее) Диапазон из п является [- (10 ^ 7), 10 ^ 7]. Пример: если n = 123, ваша …
220 c 

9
Как отключить предупреждения GCC для нескольких строк кода
В Visual C ++ это можно использовать #pragma warning (disable: ...). Также я обнаружил, что в GCC вы можете переопределить флаги компилятора файлов . Как я могу сделать это для "следующей строки", или с семантикой push / pop вокруг областей кода, используя GCC?

11
C fopen vs open
Есть ли какая-либо причина (кроме синтаксической), которую вы хотели бы использовать FILE *fdopen(int fd, const char *mode); или FILE *fopen(const char *path, const char *mode); вместо того int open(const char *pathname, int flags, mode_t mode); при использовании C в среде Linux?
220 c  linux  unix  file-io  fopen 

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