Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


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

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\n", a);
}
DevX Pro
 
Comment and Contribute

 

 

 

 

 


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

 

 

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