Я не могу использовать rdtsc, потому что он, насколько я знаю, только относительно.
blockquote>Относительно некоторого неопределенного момента времени, например, Время включения процессора.
Я не могу использовать его для измерения временных точек, верно?
blockquote>Вы используете
rdtsc
для измерения длительностей в циклах ЦП. Вы также можете использовать значение в качестве момента времени с неопределенного времени. Вы также можете узнать время настенных часов того неопределенного времени.Если вы используете
gcc
,__builtin_ia32_rdtsc
создает лучшую сборку, чем версии с ручным кодированием .
Вы должны добавить следующую строку в файл реализации :
int Foo::bar = you_initial_value_here;
Это необходимо для у компилятора есть место для статической переменной.
It's the correct syntax, however, Foo::bar
must be defined separately, outside of the header. In one of your .cpp
files, say this:
int Foo::bar = 0; // or whatever value you want
You need add a line:
int Foo::bar;
That would define you a storage. Definition of static in class is similar to "extern" -- it provides symbol but does not create it. ie
foo.h
class Foo {
static int bar;
int adder();
};
foo.cpp
int Foo::bar=0;
int Foo::adder() { ... }