.NET アセンブリがビルドされた時刻を取得するためのコードを次に示します。次の行に注意してください。
int secondsSince1970 = System.BitConverter.ToInt32(b, i + c_LinkerTimestampOffset);
このコードは、アセンブリ内に格納されている構造体のTimeDateStamp
メンバーを抽出します。IMAGE_FILE_HEADER
構造は次のように定義されます。
typedef struct _IMAGE_FILE_HEADER {
WORD Machine;
WORD NumberOfSections;
DWORD TimeDateStamp;
DWORD PointerToSymbolTable;
DWORD NumberOfSymbols;
WORD SizeOfOptionalHeader;
WORD Characteristics;
} IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER;
次のようにDWORD
定義されます。
typedef unsigned long DWORD;
構造体の説明にはTimeDateStamp
、過去の任意の瞬間からの秒数であると記載されているため、負になることはありません。
int
C# コードが符号付きの型を使用してその符号なしの値を格納するのはなぜですか?