Вопросы по теме 'storage-class-specifier'

Какой класс хранения является статическим внутри функции и почему?
Если я использую одноэлементный шаблон (да, я знаю - они обычно плохие)... и у меня была такая функция экземпляра: MySingleton* Instance() { static MySingleton instance; return &instance; } какой класс хранения instance ? Я...
861 просмотров
schedule 07.03.2022

Что такое чистые переменные?
Я был удивлен, обнаружив, что этот код компилируется: pure string Foo = SomePureFunction(123); pure упоминается только в контексте функций в онлайн-документации . Что такое переменные pure и чем они отличаются от переменных immutable...
287 просмотров
schedule 11.08.2022

Структура кадра стека для функции с подпространством
Ниже приведен код, который я взял в качестве ссылки, чтобы понять, как вспомогательная область (или) фиктивная область видимости (просто {} ), присутствующая в функции, влияет на структуру кадра стека. #include <stdio.h> int main() { int...
620 просмотров

Спецификатор класса хранения _Thread_local в C?
Я прочитал примечание в книге C How to Program 7th о каком-то новом стандартном классе хранения C с именем _Thread_local : Новый стандарт C добавляет спецификатор класса памяти _Thread_local , который выходит за рамки этой книги. Я...
3066 просмотров

Проблемы компиляции программы с внешней переменной
Внутри функции main(), когда я создаю отдельный блок (новая пара фигурных скобок), как этот: int main(void){ int x = 10; { extern int y; printf("\tNo. is %d\n", y); int y = 20; } } Когда я компилирую этот...
167 просмотров
schedule 02.01.2023

Что значит объявить переменную со спецификатором класса хранения, но без спецификатора типа?
Прочитав спецификацию грамматики ANSI C Yacc , я заметил все следующие действительны: register x; auto y; static z; extern q; Мне это кажется странным, поскольку мое понимание типа предполагает, что ни одна из этих переменных не имеет типа....
366 просмотров

Что не так с ключевым словом register в C++?
Я читал это , и там написано что ключевое слово register , скорее всего, будет удалено из следующего стандарта C++. В нем также говорится, что register устарел в 2011 году. Итак, что не так со спецификатором класса хранения register ? Я...
1219 просмотров

Зачем мне нужно объявлять эту функцию extern. Без него работает
Я новичок в концепции extern. Сегодня на работе я столкнулся с большим количеством внешних функций, которые были объявлены внутри заголовочного файла; фу.ч. Где-то в беспорядке папок я нашел файл foo.c, который содержал определение указанных...
109 просмотров
schedule 09.01.2023

В чем разница между неизменяемыми и константными функциями-членами?
В справочнике по языку программирования D показаны два примера в Declarations и Квалификаторы типов , поэтому возможны оба варианта: struct S { int method() const { //const stuff } } struct S { int method() immutable...
136 просмотров

Класс хранения глобальной переменной по умолчанию (компилятор gcc)?
Каков класс хранения глобальных переменных в C (компилятор GCC) по умолчанию? Позвольте мне поделиться кодом, например: int i; void f() { --statements--} main() { --- set of statements--- } Правильно ли я говорю, что переменная i...
228 просмотров
schedule 09.06.2023

Почему имена массивов регистров могут быть присвоены переменным-указателям без ошибки компилятора?
У меня есть вопрос о ключевом слове register в C. Я обнаружил, что имя массива register (например, array ) может быть назначено переменной-указателю, а &array[0] — нет. Можете ли вы объяснить, почему имя массива может быть присвоено...
86 просмотров

Должен ли я использовать переменные класса регистров в современных программах на C?
В C ++ ключевое слово register было удалено в последнем стандарте ISO / IEC 14882: 2017 (C ++ 17). Но и в C я часто вижу, что все больше и больше программистов склонны не использовать или не хотят объявлять объект с квалификатором класса...
131 просмотров