マクロ定義に関しての質問なんですが
ある関数funcを void func();と宣言して
#include <stdio.h>
int main()
{
func(),printf("test");
}
上記の書き方ではエラーなしで実行できるのですが、マクロを用いて

#include <stdio.h>
#define func() func(),printf("test")
int main(
{
func();
}
とするとエラーがでてしまいます。上記2つの違いは何なのでしょうか?