Нет определенного типа параметра функции, значение по умолчанию - int? Я сошел с ума?

По какой-то странной причине я копировал пример на другом языке, который не использует типы, и забыл добавить один в параметр определения функции, и это сработало.

#include <stdio.h>

char toChar(n) {
  //sizeof n is 4 on my 32 bit system
  const char *alpha = "0123456789ABCDEF";
  return alpha[n];
}

int main() {
  putchar(toChar(15)); //i.e.
  return 0;
}

Я уверен, что в большинстве компиляторов какого-либо стандарта main по умолчанию используется int (но только return), верно ли это и для других функций, или эта реализация определена? Кажется необычным, мой компилятор - это просто немного устаревший порт GCC (MinGW).

9
задан Alexander 4 May 2011 в 14:37
поделиться