Consider this C code:
#include <stdio.h>;
int main(void) {
puts("Hello, world!");; ;
;
return 0; ;
; ;
};
Here I've put semicolons almost everywhere possible. Just for fun. But surprisingly it worked! I got a warning about the semicolon after include but other absolutely wrong semicolons worked. If I forget to put a semicolon after puts
, I'll get the following error
error: expected ';' before 'return'
Why don't lots of wrong and useless semicolons cause errors? To my mind they should be treated as syntax errors.
A single semicolon constructs a null statement. It's not only legal, it's also useful in some cases, for instance, a while
/ for
loop that doesn't need a real body. An example:
while (*s++ = *t++)
;
C11 6.8.3 Expression and null statements
A null statement (consisting of just a semicolon) performs no operations.
The only syntax error is this line:
#include <stdio.h>;
semicolon means end of a statement whether it is empty or not. No semicolon means you have not closed/ end last statement but started a new one which gives error. too many semicolon indicates end of blank statement each. So, it does not give error
Why should an empty statement be an error? It is not.
The ;
(statement delimiter) is always used to specify that particular statement is ended. There after next statement is executed.
If you dont put delimeter, then it will consider the next statement with the current statement and execute. And that gives a syntatic error.
But in other case when we put multiple delimeters eg:
int a;;;;;
In that case we have 5 statements, in which int a
is first statement and next four statements are null statements that will be removed by compiler at during compilation.
See some interesting cases for this question:
int main()
{
int a=0 ;,;
return 0;
}
when we change above programj it it still works:
int main()
{
int a=0 ,; /*change done*/
return 0;
}
The ;
is a statement delimiter in C as mentioned in the above answer. Rahul's answer is perfectly correct, just that you can see this answer to a question which asks why a statement in C ends with a semicolon. Thus, when you understand why a semicolon is used, you will understand what happens when you put too many semicolons.