As far as I remember (...) pragma acts on a 'module'.  "Handle this module only 
once."
For most cases, this indeed means a (disk- or memory-based) file.  Pragma's 
typicallyhandle only that module, and any modules it includes (#include) or 
otherwise references.So,
foo.c   #pragma once
means "handle this module once", which translates to the entire module and what 
itincludes.  foo.c, but also anything it includes - the preprocessor typically 
stops parsingthe file after it detects it already did before.
> Can i pragma once in the middle of my header file?Yes, but typically, its at 
> the top.
>  Can I pragma once conditionally?That is a good question, dunno. Sounds a bit 
>weird, but hmmm.
> On linux we can use inode as a proxy, but win32 is lacking inodes… that’s the 
> current> problem to solveWindows (well, NTFS) uses file object IDs; either 
> through the MFT or through the API.Like inodes, they are a per-volume ID 
> (local to the filesystem, so a file module is ID'edby (volume ID + file ID.)
For Windows, we can use the
  FileReference
  The 8-byte file reference number for the file. NTFS generates this number and 
assigns it to the file  automatically when the file is created.
info, for example.
Retrieving this takes time, but probably less so than doing a full hash on its 
contents.
Fred
_______________________________________________
Tinycc-devel mailing list
Tinycc-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/tinycc-devel

Reply via email to