compiler construction - Why do I have to specify data type each time in C? -


as can see code snippet below, have declared 1 char variable , 1 int variable. when code gets compiled, must identify data types of variables str , i.

why need tell again during scanning variable it's string or integer variable specifying %s or %d scanf? isn't compiler mature enough identify when declared variables?

#include <stdio.h>  int main () {   char str [80];   int i;    printf ("enter family name: ");   scanf ("%s",str);     printf ("enter age: ");   scanf ("%d",&i);    return 0; } 

because there's no portable way variable argument functions scanf , printf know types of variable arguments, not how many arguments passed.

see c faq: how can discover how many arguments function called with?


this reason there must @ least 1 fixed argument determine number, , maybe types, of variable arguments. , argument (the standard calls parmn, see c11(iso/iec 9899:201x) §7.16 variable arguments ) plays special role, , passed macro va_start. in word, can't have function prototype in standard c:

void foo(...); 

Comments

Popular posts from this blog

ios - UICollectionView Self Sizing Cells with Auto Layout -

node.js - ldapjs - write after end error -

DOM Manipulation in Wordpress (and elsewhere) using php -