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

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

8
В чем разница между массивом char и указателем в C?
Я пытаюсь понять указатели в C, но я в настоящее время путаю со следующим: char *p = "hello" Это указатель на символ, указывающий на массив символов, начиная с h . char p[] = "hello" Это массив, который хранит привет . Какая разница, когда я передаю обе эти переменные в эту …
216 c  arrays  pointers 

30
Почему программы не пишутся на ассемблере чаще? [закрыто]
В настоящее время этот вопрос не очень подходит для нашего формата вопросов и ответов. Мы ожидаем, что ответы будут подтверждены фактами, ссылками или опытом, но этот вопрос, скорее всего, вызовет дебаты, споры, опрос или расширенное обсуждение. Если вы считаете, что этот вопрос можно улучшить и, возможно, вновь открыть, обратитесь за …

3
Почему определения указателей на функции работают с любым количеством амперсандов '&' или звездочек '*'?
Почему следующие работы? void foo() { cout << "Foo to you too!\n"; }; int main() { void (*p1_foo)() = foo; void (*p2_foo)() = *foo; void (*p3_foo)() = &foo; void (*p4_foo)() = *&foo; void (*p5_foo)() = &*foo; void (*p6_foo)() = **foo; void (*p7_foo)() = **********************foo; (*p1_foo)(); (*p2_foo)(); (*p3_foo)(); (*p4_foo)(); (*p5_foo)(); (*p6_foo)(); …
216 c++  c  function-pointers 


3
Что означают скобки вокруг имени функции?
В одном из исходных файлов моего проекта я нашел определение функции C: int (foo) (int *bar) { return foo (bar); } Примечание: рядом нет звездочки foo, поэтому это не указатель на функцию. Либо это? Что здесь происходит с рекурсивным вызовом?
214 c  function  parentheses 


4
Каковы различия между .so и .dylib на osx?
.dylib - это динамическое расширение библиотеки в OSX, но мне никогда не было ясно, когда я не могу / не должен использовать традиционный общий объект unix .so. Некоторые из вопросов, которые у меня есть: На концептуальном уровне, каковы основные различия между .so и .dylib? Когда можно / нужно использовать один …
214 c++  c  macos  unix 

8
закрыть против отключения сокета?
В C я понял, что если мы закроем сокет, это означает, что сокет будет уничтожен и может быть использован позже. Как насчет выключения? В описании сказано, что он закрывает половину дуплексного соединения с этим сокетом. Но будет ли этот сокет уничтожен как closeсистемный вызов?
214 c  sockets  networking 



24
Защита исполняемого файла от обратного инжиниринга?
Я обдумывал, как защитить мой код C / C ++ от дизассемблирования и обратного инжиниринга. Обычно я никогда не потворствую этому поведению в своем коде; однако текущий протокол, над которым я работаю, никогда не должен быть проверен или понятен для безопасности различных людей. Теперь это новая тема для меня, и …
210 c++  c  obfuscation  assembly 

30
Есть ли хорошая замена Valgrind для Windows?
Locked . Этот вопрос и его ответы заблокированы, потому что вопрос не по теме, но имеет историческое значение. В настоящее время он не принимает новые ответы или взаимодействия. Я искал Valgrind, чтобы помочь улучшить кодирование / отладку C, когда обнаружил, что это только для Linux - у меня больше нет …

5
Почему целочисленное переполнение без знака определяется поведением, а переполнение со знаком - нет?
Целочисленное переполнение без знака хорошо определяется стандартами C и C ++. Например, стандарт C99 ( §6.2.5/9) гласит Вычисления с использованием беззнаковых операндов никогда не могут переполниться, потому что результат, который не может быть представлен результирующим целочисленным типом без знака, уменьшается по модулю на число, которое на единицу больше наибольшего значения, …


6
typedef массив фиксированной длины
Я должен определить 24-битный тип данных. Я использую char[3]для представления типа. Могу ли я ввести char[3]определение type24? Я попробовал это в примере кода. Я положил typedef char[3] type24;в мой файл заголовка. Компилятор не жаловался на это. Но когда я определил функцию void foo(type24 val) {}в моем C-файле, он пожаловался. Я …
210 c  arrays  gcc  typedef 

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