به نظرم دو تا موضوع با هم قاطی شده. به صورت مشخص این کد، متعلق به زبان C++
هست نه C
. چون در C
مقدار پیشفرض به آرگومان نمیتونیم به این صورت بدیم.
اصل سوال از اینجا ناشی میشه که در C
و C++
، اعلان f(void)
معنای متفاوتی داره.
در C++
اعلان f()
دقیقاً به معنی f(void)
هست. یعنی این تابع هیچ پارامتری نمیگیره.
در C
، اعلان f(void)
به این معنی هست که این تابع هیچ پارامتری نمیگیره اما f()
به این معنی هست که این تابع میتونه هر تعداد پارامتر بدون نوع مشخص بگیره.
هیچ پژوهش انسانی نمیتواند ادعای علمی بودن داشته باشد، مگر اینکه از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)