LINUX.ORG.RU

История изменений

Исправление hateyoufeel, (текущая версия) :

Никто не понимает, что ты тут пишешь, но забудем на секунду об указателях:

C ➤ cat args.c                                                                 
#include <stdio.h>

void f() {
  printf("Hello, LOR!\n");
}

int main(void) {
  f();
  f(1);
  f(1,2);
  f(1,2,3);
  return 0;
}
C ➤ gcc args.c -o args -Wall -Wextra                                           
C ➤ ./args                                                                     
Hello, LOR!
Hello, LOR!
Hello, LOR!
Hello, LOR!
C ➤ gcc args.c -o args -Wall -Wextra -std=c23                                  
args.c: In function ‘main’:
args.c:9:3: error: too many arguments to function ‘f’
    9 |   f(1);
      |   ^
args.c:3:6: note: declared here
    3 | void f() {
      |      ^
args.c:10:3: error: too many arguments to function ‘f’
   10 |   f(1,2);
      |   ^
args.c:3:6: note: declared here
    3 | void f() {
      |      ^
args.c:11:3: error: too many arguments to function ‘f’
   11 |   f(1,2,3);
      |   ^
args.c:3:6: note: declared here
    3 | void f() {
      |  

Так тебе стало понятнее, что именно изменилось?

Исходная версия hateyoufeel, :

Никто не понимает, что ты тут пишешь, но забудем на секунду об указателях:

C ➤ cat args.c                                                                 
#include <stdio.h>

void f() {
  printf("Hello, LOR!\n");
}

int main(void) {
  f();
  f(1);
  f(1,2);
  f(1,2,3);
  return 0;
}
C ➤ gcc args.c -o args -Wall -Wextra                                           
C ➤ ./args                                                                     
Hello, LOR!
Hello, LOR!
Hello, LOR!
Hello, LOR!
C ➤ gcc args.c -o args -Wall -Wextra -std=c23                                  
args.c: In function ‘main’:
args.c:9:3: error: too many arguments to function ‘f’
    9 |   f(1);
      |   ^
args.c:3:6: note: declared here
    3 | void f() {
      |      ^
args.c:10:3: error: too many arguments to function ‘f’
   10 |   f(1,2);
      |   ^
args.c:3:6: note: declared here
    3 | void f() {
      |      ^
args.c:11:3: error: too many arguments to function ‘f’
   11 |   f(1,2,3);
      |   ^
args.c:3:6: note: declared here
    3 | void f() {
      |  

Так тебе понятнее стало?