я определил некоторые функции и напечатать их адрес, как это:C++ указатель на функцию не изменилась
#include<iostream>
#include <string>
using std::cout;
std::string func()
{
return "hello world\n";
}
int func2(int n)
{
if (n==0)
{
cout << func2 << std::endl;
return 1;
}
cout << func2 << std::endl;
return n + func2(n - 1);
}
//================================================
int main()
{
int (*fun)(int) = func2;
cout << fun;
cout << std::endl << func2(3);
}
Когда я печатаю имя функции (адрес) все они печатают 1
на мой компилятор (Mingw GCC 4.8) ,
Все хорошо?
Предполагая, что размер указателя функции не превышает размер 'unsigned long long int'. Вы также должны добавить 'const' для броска, чтобы предотвратить несчастные случаи. –
Да, ну ... в C++ 11 длинный длинный не менее 64 бит. – juzzlin
Итак? Что, если указатели 128-бит в будущем? Как только они были всего лишь 16 бит. –