Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Необходимо разобораться с предопределёнными макросами (компилятор g++) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Наследование конструкторов http://www.cyberforum.ru/cpp-beginners/thread1093479.html
Здрасти. Такая проблема. У меня есть классы с таким наследованием: KIERUNEK-->PRZEDMIOT-->OCENA<--STUDENT Вот конструкторы класса OCENA: ocena(); ocena(student& s); ...
C++ В квадратной матрице найти номер первого отрицательного элемента в строке и составить из них массив. Помогите плз. Никак соображу как сделать лабу. Дан массив размером nxn, элементы которого целые числа. Для каждой строки найти номер первого отрицательного элемента и записать данные в новый массив.... http://www.cyberforum.ru/cpp-beginners/thread1093474.html
Создание уникальной системы отрисовки графики и проверок проходимости в системе, при разных разрешениях экрана C++
Всем доброго времени суток! Начал писать 2D игрушку (вид с боку) и пришел момент, когда я решил, что было бы круто ввести возможность изменять разрешения окна с включенным и выключенным режимом Full...
Вычислить среднее арифметическое отрицательных элементов массива. Использовать функцией для каждой строки матрицы А (4, 8) C++
Здравствуйте. Вычислить среднее арифметическое отрицательных элементов массива. Использовать функцией для каждой строки матрицы А (4, 8). Вот есть наброски, но я если честно вообще ничего не понял,...
C++ Пропал значек run в CodeBlocks http://www.cyberforum.ru/cpp-beginners/thread1093434.html
Здравствуйте прошу не судить строго ... до этого не программировал на C++ Только PHP ...) Вообщем такая проблема ... создал проект ... создал hello world...добавил empty file в проект и написал в нем...
C++ Поделитесь советом. Как сократить еще 1 символ. =) c>>a; a--; while(g+=a&1, a/=2); o<<g%3; Подскажите, пожалуйста, реально ли укоротить ее еще? ))) подробнее

Показать сообщение отдельно
DrOffset
7316 / 4416 / 1000
Регистрация: 30.01.2014
Сообщений: 7,253
16.02.2014, 14:43
Цитата Сообщение от kravam Посмотреть сообщение
Кроме того, я не нашёл там, что она- предопределённый идентификатор. Что она не макрос, я прочёл. Что она содержит имя вызываемой функции я знал. Осталось узнать- как это называется, дабы обратиться к соответсвующему разделу
В стандарте С++ этого не найти. Потому что это фича компилятора. Следовательно, первый источник мануал по компилятору.

В мануале GCC действительно не написано, что это именно идентификатор. Но это логически следует из описания. Однако я могу дать ссылку на другие источники где это четко обозначено, например вот.

Либо, можно обратиться к стандарту С, там есть __func__ который семантически соответствует __FUNCTION__.
6.4.2.2
Predefined identifiers
Semantics
1 The identifier _ _func_ _ shall be implicitly declared by the translator as if,
immediately following the opening brace of each function definition, the declaration
static const char _ _func_ _[]="function-name";
appeared, where function-name is the name of the lexically-enclosing function.

2 This name is encoded as if the implicit declaration had been written in the source
character set and then translated into the execution character set as indicated in translation
phase 5.
Добавлено через 14 часов 13 минут
Цитата Сообщение от kravam Посмотреть сообщение
Наверное, надо плясать от того, что она "an implementation-defined string". Сейчас попытаюсь определить, что это значит.
Это в старом стандарте. В последних двух (С99 и С11) это называется "predefined identifier".
Значит это то, что в случае обращения к такому идентификатору внутри функции, компилятор автоматически генерирует константу такого вида
static const char _ _func_ _[]="function-name"
и заносит туда строку с именем этой функции. Об этом написано и в вашей цитате. Ну и см. мой предыдущий пост с цитатой из более нового стандарта.

Вроде теперь все на своих местах, нет?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru