Коментарите не могат да бъдат
влагани. Т.е., коментар не може да се поставя във вътрешността на друг коментар.
Въведете програмата, написана по-нататък в текста. Тя ще предизвика генерирането
на серия от грешки. Как бихте могли да се справите с това?
#include
<stream.h>
/*
comment pairs /* */ do not nest.
"do not nest"
is considerd sourse code,
as are both these lines and the
next.
*/
main() {
cout << "hello,
worldn";
}
Вторият тип коментари се означава чрез двойката символи
//, ограничаващи коментар от един ред. Текстът, записан от дясно на този
ограничител, се третира като коментар и се игнорира от компилатора.
Например,
#include <strem.h>
#include "myIO.h"
int isOdd(
int );
main() {
int v1, v2; // hold values from user
read2( v1, v2 ); // declared in myIO.h
if ( isOdd( v1 ) == 1 )
cout << v1<< " is oddn";
if ( isOdd( v2 ) == 1 )
cout << v2<< " is oddn";
return 0;
}
isOdd( int
val ) {
/* return 1 if val is odd; otherwise, return 0 *
% is the modulus
operator; 3 % 2 yields 1. */
return( val % 2 != 0 );
}
Тази
програма определя дали стойностите са четни или нечетни.
Тя използува
функцията read2(), дефинирана в предходния подраздел. Прототипът на тази функция
е зададен в заглавния файл myIO.h. Когато програмата бъде компилирана и
изпълнена, ще бъде изведено следното (стойностите 497 и -25 са въведени от
потребителя):
Please enter two numeric values: 497 -25
497 is
odd
25 is odd
Двойката символи, ограничаваща коментарите, не може да
бъдат разделяни с интервал. Следните два реда, например, няма да бъдат
разглеждани като коментари, а по-скоро като част от програмния текст:
/ *
not a comment: white space not allowed */
// also not a comment: must be
//
Обикновено програмите съдържат както единия тип коментари, така и
другия. Обширните разяснения най-често се организират в коментар като се
използува двойката коментарни ограничители. За бележки, разположени на половин
или един ред се използуват символите //.
1.5. Директиви на
предпроцесора
Редом със стандартните библиотеки се предлага набор от
стандартни заглавни файлове, такива като stream.h. Тези заглавни файлове
съдържат цялата информация, необходима на потребителя, за да използува лесно
библиотеките. За да имаме достъп до променливите и функциите, дефинирани в тези
библиотеки, ние трябва да включим съответния заглавен файл в нашата
програма.
Заглавните файлове стават част от нашата програма като се
използува директивата include. Директивите се определят като се постави знака #
в първата колона от реда в нашата програма. Директивите се обработват преди
извикването на езиковия компилатор. Програмата, която обработва директивите се
нарича пред-процесор.
Директивата #include чете от съдържанието на
именуван файл. Тя има един от следните два формата:
#include
<stream.h>
#include "myIO.h"
Ако името на файла е затворено в
ъглови скоби (“<>”) се подразбира, че файлът е предварително дефиниран,
или стандартен, заглавен файл. Търсенето за откриването му ще бъде проведено в
предварително дефинирано множество от местоположения, което може да бъде
променяно чрез опцията -I на командата СС. Например, командата
$ CC -I
incl -I/usr/local/include prog1.c
указва на предпроцесора да потърси
първо в директория incl, а после в /usr/local/include, преди да преглежда
предварително дефинираното множество от местоположения. При първият открит
екземпляр на файла се преустановява търсенето.
#include
void read() { cout pact() { cout n"; }
void write() { cout n() {
read();
sort();
compact();
write();
return 0;
}
При мен С ми извежда грешка още в първия ред, демек при #include