Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / не работает _FUNCTION_ / 4 сообщений из 4, страница 1 из 1
25.09.2016, 11:16
    #39315070
saley
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не работает _FUNCTION_
Здравствуйте,
Проблема с примером из Айвора Хортона.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
// Name.срр - реализация класса Name
#define _CRT_SECURE_NO_WARNINGS
#include "Name.h" // Определение класса Name
#include "DebugStuff.h" // Управление отладочным кодом
#include <cstring> // Для строковых функций в стиле С
#include <cassert> // Для утверждений
#include <iostream>

using namespace std;
// Стандартный конструктор
Name::Name()
{
#ifdef CONSTRUCTOR_TRACE
	// Трассировка вызовов конструктора
	cerr << "\nВызван стандартный конструктор Name.";
	
#endif
		pFirstname = pSurname = "\0";
}
// Конструктор
Name::Name(const char* pFirst, const char* pSecond) //:pFirstname(pFirst), pSurname(pSecond)
{
	// Проверить, что аргументы не равны null
	assert(pFirst != 0);
	assert(pSecond != 0);
#ifdef CONSTRUCTOR_TRACE
	// Трассировка вызовов конструктора
	cerr << "\nВызван конструктор Name.";
#endif
	pFirstname = new char[strlen(pFirst) + 1];
	strcpy(pFirstname, pFirst);
	pSurname = new char[strlen(pSecond) + 1];
	strcpy(pSurname, pSecond);
}
// Возвращает полное имя в виде строки, включающей имя, пробел, фамилию.
// Аргумент должен быть адресом символьного массива, достаточного,
// чтобы вместить полное имя
char* Name::getName(char* pName) const
{
	assert(pName); // Проверка аргумента на равенство null
	
#ifdef FUNCTION_TRACE
		// Трассировка вызова функции
	cout << '\n' << _FUNCTION_ << " вызвана.";
#endif
	strcpy(pName, pFirstname); // Копировать имя
	pName[strlen(pName)] = ' '; // Добавить пробел
	// Добавить фамилию и вернуть результат
	return strcpy(pName + strlen(pName) + 1, pSurname);
}
// Возвращает общую длину имени
size_t Name::getNameLength() const
{
#ifdef FUNCTION_TRACE
	// Трассировка вызова функции
	cout << '\n' << _FUNCTION_ << " вызвана.";
#endif
	return strlen(pFirstname) + strlen(pSurname);
}



ошибка:
Код: plaintext
1.
IntelliSense: identifier "_FUNCTION_" is undefined



Исходя из MSDN

никаких дополнительных директив для макроса не требуется.
В чём может быть проблема?
Помогите пожалуйста.
...
Рейтинг: 0 / 0
25.09.2016, 11:19
    #39315071
saley
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не работает _FUNCTION_
Извиняюсь, разобрался, перед FUNCTION должно быть два знака _ , а в примере один.
...
Рейтинг: 0 / 0
27.09.2016, 21:47
    #39316573
alexy_black
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не работает _FUNCTION_
обратите также внимание на
http://stackoverflow.com/questions/597078/file-line-and-function-usage-in-c
...
Рейтинг: 0 / 0
12.10.2016, 14:22
    #39325340
ponuch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не работает _FUNCTION_
простите, а зачем весь этот кошмар в стиле си ? в плюсах же есть более менее человеческий string
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / не работает _FUNCTION_ / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]