devxlogo

Unnamed Function Arguments

Unnamed Function Arguments

When an argument of a function is not used anymore in the function body (in an upgrade, for example), it needn’t be removed from the function’s argument list. It can rather become an unnamed argument. The following WriteData function used to support data streaming into various I/O devices, including 5.25″ floppy disk. In its upgraded version, WriteData does not support 5.25″ disk anymore. However, removal of the final argument would force users to change the prototype as well, or otherwise a link-time error would occur. Therefore, the final argument was not removed entirely. Instead, it was unnamed:

 void  WriteData(HardDisk &disk, Floppy3_5& diskette,  floppy5_25& ){/*..*/}

This can be useful in the following cases: when the function’s prototype and its definition are located in separate files and the file containing the prototype can not be changed; when there are enormous occurrences of the prototype in several headers; or when the software is to be shipped to customers as a binary .lib or .obj file, still enabling them to use the old headers.

devx-admin

Share the Post: