• 締切済み

このプログラムの内部変数とモジュールインタフェースを教えてください

以下のプログラム(一部分)における、内部変数とモジュールインタフェース(引数、戻り値)が何かを教えてください expand.c の一部です static void expand (void) { /* Input stream. */ FILE *fp = next_file (NULL); if (!fp) return; for (;;) { /* Input character, or EOF. */ int c; /* If true, perform translations. */ bool convert = true; /* The following variables have valid values only when CONVERT is true: */ /* Column of next input character. */ uintmax_t column = 0; /* Index in TAB_LIST of next tab stop to examine. */ size_t tab_index = 0; /* Convert a line of text. */ do { while ((c = getc (fp)) < 0 && (fp = next_file (fp))) continue; if (convert) { if (c == '\t') { /* Column the next input tab stop is on. */ uintmax_t next_tab_column; if (tab_size) next_tab_column = column + (tab_size - column % tab_size); else for (;;) if (tab_index == first_free_tab) { next_tab_column = column + 1; break; } else { uintmax_t tab = tab_list[tab_index++]; if (column < tab) { next_tab_column = tab; break; } } if (next_tab_column < column) error (EXIT_FAILURE, 0, _("input line is too long")); while (++column < next_tab_column) if (putchar (' ') < 0) error (EXIT_FAILURE, errno, _("write error")); c = ' '; } else if (c == '\b') { /* Go back one column, and force recalculation of the next tab stop. */ column -= !!column; tab_index -= !!tab_index; } else { column++; if (!column) error (EXIT_FAILURE, 0, _("input line is too long")); } convert &= convert_entire_line | !! isblank (c); } if (c < 0) return; if (putchar (c) < 0) error (EXIT_FAILURE, errno, _("write error")); } while (c != '\n'); } } int 以上になります よろしくお願いします

みんなの回答

回答No.1

内部変数: 関数内で宣言している変数すべて。 引数: なし 戻り値: なし

Zippyy
質問者

補足

内部変数は FILE *fp : Input stream int c : Input character, or EOF bool convert : perform translationsのフラグ uintmax_t column : Column of next input character size_t tab_index : Index in TAB_LIST of next tab stop to examine uintmax_t next_tab_column : Column the next input tab stop is on 上記になりそうですが、うまく日本語で表記できないでしょうか?

関連するQ&A