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

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

5
Бит-сдвиг зависит от порядка байтов?
Предположим, у меня есть 'numb'=1025 [00000000 00000000 00000100 00000001]представленное число : На Little-Endian Machine: 00000001 00000100 00000000 00000000 На Big-Endian Machine: 00000000 00000000 00000100 00000001 Теперь, если я применю сдвиг влево на 10 битов (то есть: numb << = 10), я должен иметь: [A] На Little-Endian Machine: Как я заметил …
155 c  endianness 

7
Экзотические архитектуры, о которых заботятся комитеты по стандартам
Я знаю, что стандарты C и C ++ оставляют многие аспекты языка, определенные реализацией, просто потому, что если существует архитектура с другими характеристиками, было бы очень трудно или невозможно написать для нее стандартный соответствующий компилятор. Я знаю, что 40 лет назад у любого компьютера была своя уникальная спецификация. Однако я …
154 c++  c  architecture 

5
Вальгринд обнаружил утечку
Все функции, упомянутые в этом блоке, являются библиотечными функциями. Как я могу исправить эту утечку памяти? Он указан в категории « Все еще достижимо ». (Есть еще 4, которые очень похожи, но разных размеров) 630 bytes in 1 blocks are still reachable in loss record 5 of 5 at 0x4004F1B: …
154 c  pthreads  valgrind 


8
Более эффективно использовать if-return-return или if-else-return?
Предположим, у меня есть ifутверждение с return. С точки зрения эффективности, следует ли мне использовать if(A > B): return A+1 return A-1 или if(A > B): return A+1 else: return A-1 Что лучше выбрать при использовании компилируемого языка (C) или скриптового (Python)?

6
NSLog имя метода с Objective-C в iPhone
В настоящее время мы сами определяем расширенный механизм журнала, чтобы распечатать имя класса и номер строки исходного кода журнала. #define NCLog(s, ...) NSLog(@"<%@:%d> %@", [[NSString stringWithUTF8String:__FILE__] lastPathComponent], \ __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__]) Например, когда я звоню NCLog (@ "Hello world"); Выход будет: <ApplicationDelegate:10>Hello world Теперь я также хочу выйти из …

11
~ x + ~ y == ~ (x + y) всегда ложно?
Этот код всегда оценивается как ложный? Обе переменные являются двумя знаковыми дополнениями. ~x + ~y == ~(x + y) Я чувствую, что должно быть какое-то число, которое удовлетворяет условиям. Я пытался проверить числа между, но так -5000и 5000не достиг равенства. Есть ли способ установить уравнение, чтобы найти решение для условия? …

9
В Си скобки действуют как кадр стека?
Если я создаю переменную в новом наборе фигурных скобок, эта переменная выталкивается из стека на закрывающей скобке или она висит до конца функции? Например: void foo() { int c[100]; { int d[200]; } //code that takes a while return; } Будете dзанимать память во время code that takes a whileраздела?
153 c  memory  stack 

9
Что такое «обратный вызов» в C и как они реализованы?
Из того, что я прочитал, Core Audio в значительной степени опирается на обратные вызовы (и C ++, но это уже другая история). Я понимаю концепцию (своего рода) настройки функции, которая неоднократно вызывается другой функцией для выполнения задачи. Я просто не понимаю, как они настроены и как они на самом деле …
153 c  callback 

14
Проверка на нулевой указатель в C / C ++ [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 5 лет назад . Улучшить этот вопрос В недавнем обзоре кода участник пытается обеспечить выполнение всех NULLпроверок …

13
Какие инструменты есть для функционального программирования на C?
В последнее время я много думал о том, как заниматься функциональным программированием на C ( не на C ++). Очевидно, что C является процедурным языком и на самом деле не поддерживает функциональное программирование изначально. Существуют ли какие-либо расширения компилятора / языка, которые добавляют некоторые функциональные программные конструкции к языку? GCC …

13
Может ли num ++ быть атомарным для int num?
В общем случае for int num, num++(или ++num) как операция чтения-изменения-записи не является атомарной . Но я часто вижу, как компиляторы, например GCC , генерируют для него следующий код ( попробуйте здесь ): Так как строка 5, которая соответствует num++одной инструкции, можем ли мы сделать вывод, что num++ это атомарный …

8
Возврат массива с использованием C
Я относительно новичок в C, и мне нужна помощь с методами работы с массивами. Исходя из Java-программирования, я привык говорить int [] method(), чтобы возвращать массив. Тем не менее, я обнаружил, что с C вы должны использовать указатели для массивов, когда вы возвращаете их. Будучи новым программистом, я действительно не …
153 c  arrays  pointers  char 

2
Как дважды объединить с препроцессором C и развернуть макрос как в «arg ## _ ## MACRO»?
Я пытаюсь написать программу, в которой имена некоторых функций зависят от значения определенной макропеременной с помощью макроса: #define VARIABLE 3 #define NAME(fun) fun ## _ ## VARIABLE int NAME(some_function)(int a); К сожалению, макрос NAME()превращает это в int some_function_VARIABLE(int a); скорее, чем int some_function_3(int a); так что это явно неправильный путь. …

4
Что означает «#define _GNU_SOURCE»?
Сегодня я должен был использовать basename()функцию, и man 3 basename( здесь ) дал мне странное сообщение: Ноты Существует две разные версии basename () - версия POSIX, описанная выше, и версия GNU , после которой #define _GNU_SOURCE #include <string.h> Мне интересно, что это #define _GNU_SOURCEзначит: портит ли код, который я пишу, …
152 c  posix  gnu 

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