Próbuję nauczyć się podstaw C stosując The C Programming Language - Brian Kernighan and Dennis RitchieW C jak ten parametr jest zadeklarowany w funkcji?
W poniższym programie, nie rozumiem gdzie wartość 'maxlineLength
"pochodzi?
Pętla for jest ustawiona na pracę, podczas gdy "i
" jest mniejsza niż maxLineLength-1
, ale jaka jest wartość maxLineLength
i skąd się ona bierze?
Z tego co rozumiem, kiedy parametry są zadeklarowane w funkcji podobnej do tej, przekazywana jest im wartość, więc z pewnością muszą zostać zadeklarowane gdzie indziej, aby wartość została przekazana?
#include <stdio.h>
#define MAXIMUMLINELENGTH 1000
#define LONGLINE 20
main() {
int stringLength;
char line[MAXIMUMLINELENGTH];
while((stringLength = getLineLength(line, MAXIMUMLINELENGTH)) > 0)
if(stringLength < LONGLINE){
printf("The line was under the minimum length\n");
}
else if (stringLength > LONGLINE){
printf("%s", line);
}
return 0;
}
int getLineLength(char line[], int maxLineLength){
int i, c;
for(i = 0; i< maxLineLength-1 && ((c = getchar())!= EOF) && c != '\n'; i++)
line[i] = c;
if(c == '\n') {
line[i] = c;
i++;
}
line[i] = '\0';
return i;
}
zdefiniowany jako makro '#define MAXIMUMLINELENGTH 1000' przechodzi funkcjonować' getLineLength() 'w podczas –
Hi Grijesh są MAXIMUMLINELENGTH i maxLineLength dwóch zupełnie różnych zmiennych? –
'MAXIMUMLINELENGTH' jest wartością stałą, która rozwija się do wartości kompilacji' 1000'at, Tak 'maxLineLength' to inna zmienna lokalna do funkcji' getLineLength() ', sprawdź ideę ponad [makro const stąd] (http: // stackoverflow. com/questions/3216752/what-is-the-the-difference-between-macro-constants-and-constant-in-c) –