Is 'sizeof' evaluated at compile time or run time? If it's at compile time, why doesn't this compile with VC8..?

Code:
__declspec(align(sizeof(int))) struct s {
	char a;
	int  b, c;
};