devxlogo

Void Function Arguments

Void Function Arguments

Question:
Why does Java accept function declarations like

public void func();

but not declarations like

public void func(void);

Answer:
Java is not C. Despite the similar syntax, all C idioms do not translate to Java. In C, an empty argument list in a function prototype implies that the function may in fact accept any number of arguments of any type. ANSI C requires that a prototype have a void argument list in order for the compiler to treat it as taking no arguments. C++ changed this behavior and specified that all empty argument lists in function prototypes were implicitly void. Java does the same thing, except that Java does not support the types of C behavior that necessitate the void argument list. For example, you can pass any number of arguments of any type to a C function declared with no arguments. The following is a legal C program that demonstrates this, but you shouldn’t write code like this unless you have a very good reason.

void foo();int main() {  foo(4);  foo(8, 5);}void foo(int a, int b) {  printf("%d
", a);}

devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist