Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: Java Language
Expertise: Beginner
Aug 11, 2000



Building the Right Environment to Support AI, Machine Learning and Deep Learning

Void Function Arguments

Why does Java accept function declarations like
public void func();
but not declarations like
public void func(void);

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(8, 5);

void foo(int a, int b) {
  printf("%d\n", a);
DevX Pro
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date