vc7.1
test1.cpp
#include "test.h"
int main()
{
extern void bar();
bar();
foo();
return 0;
}
test2.cpp
#include "test.h"
void bar()
{
foo();
}
первый вариант:
test.h
static void foo()
{
DWORD sign = 0xC0DEC0DE;
printf("%08X\n", sign);
}
в бинарнике получаем две переменные sign и две функции foo() (одна заинлайнена)
второй вариант:
test.h
namespace
{
void foo()
{
DWORD sign = 0xC0DEC0DE;
printf("%08X\n", sign);
}
}
в бинарнике получаем одну переменную sign и одну функцию foo()
получается используя unnamed namespace теперь можно преспокойно define любые функции в *.h instead of *.cpp?
где можно почитать про данное поведение?