The /Zg option generates a function prototype for each function defined in the source file but does not compile the source file.
The function prototype includes the function return type and an argument-type list. The argument-type list is created from the types of the formal parameters of the function. Any function prototypes already present in the source file are ignored.
The generated list of prototypes is written to the standard output. You may find this list helpful to verify that actual arguments and formal parameters of a function are compatible. You can save the list by redirecting standard output to a file. Then you can use #include to make it a part of your source file as function prototypes. Doing so causes the compiler to perform argument type checking.
If you use the /Zg option and your program contains formal parameters that have structure, enumeration, or union type (or pointers to such types), the prototype for each structure, enumeration, or union type must have a tag.