Aracılığıyla paylaş


C İşlev Tanımları

İşlev tanımı işlevin adını, almayı beklediği parametre türlerini ve sayısını ve dönüş türünü belirtir. İşlev tanımı, yerel değişkenlerinin bildirimlerini içeren bir işlev gövdesi ve işlevin ne yaptığını belirleyen deyimleri de içerir.

Sözdizimi

translation-unit:
external-declaration
translation-unit external-declaration

external-declaration: /* Yalnızca dış (dosya) kapsamında izin verilir */
function-definition
declaration

function-definition:
declaration-specifiersopt attribute-seqopt opt declarator declaration-list compound-statement

/* attribute-seq Microsoft'a özgü */

Prototip parametreleri şunlardır:

declaration-specifiers:
storage-class-specifierdeclaration-specifiersTercih
type-specifierdeclaration-specifiersTercih
type-qualifierdeclaration-specifiersTercih

declaration-list:
declaration
declaration-list declaration

declarator:
pointerTercih direct-declarator

direct-declarator: /* İşlev bildirimcisi */
direct-declarator ( parameter-type-list ) /* Yeni stil bildirimcisi */
direct-declarator ( identifier-listopt ) /* Eski stil bildirimci */

Bir tanımdaki parametre listesi şu söz dizimini kullanır:

parameter-type-list: /* Parametre listesi */
parameter-list
parameter-list , ...

parameter-list:
parameter-declaration
parameter-list , parameter-declaration

parameter-declaration:
declaration-specifiers declarator
declaration-specifiersabstract-declaratorTercih

Eski stil işlev tanımındaki parametre listesi şu söz dizimini kullanır:

identifier-list: /* Eski stil işlev tanımlarında ve bildirimlerinde kullanılır */
identifier
identifier-list , identifier

İşlev gövdesinin söz dizimi şöyledir:

compound-statement:
{declaration-listtercih et statement-list }

bir işlev bildirimini değiştirebilen tek depolama sınıfı tanımlayıcıları ve static'dırextern. Tanımlayıcı, extern işleve diğer dosyalardan başvurulabileceğini belirtir; yani işlev adı bağlayıcıya aktarılır. Tanımlayıcı, static işleve diğer dosyalardan başvurulamadığını, yani adın bağlayıcı tarafından dışarı aktarılmadığını belirtir. bir işlev tanımında hiçbir depolama sınıfı görünmüyorsa, extern varsayılır. Her durumda işlev, tanım noktasından dosyanın sonuna kadar her zaman görünür.

İsteğe bağlı declaration-specifiers ve zorunlu declarator birlikte işlevin dönüş türünü ve adını belirtir. declarator işlevi ve parantezleri işlev adına göre adlandıran tanımlayıcının birleşimidir. İsteğe bağlı attribute-seq terim olmayan, İşlev Öznitelikleri'nde tanımlanan Microsoft'a özgü bir özelliktir.

direct-declarator (söz dizimindedeclarator), tanımlanan işlevin adını ve parametrelerinin tanımlayıcılarını belirtir. direct-declarator bir içeriyorsaparameter-type-list, liste tüm parametrelerin türlerini belirtir. Böyle bir bildirimci, işleve daha sonra yapılan çağrılar için bir işlev prototipi işlevi de görür.

in işlev tanımlarındaki declaration-list Adeclaration, dışında registerbir storage-class-specifier içeremez. type-specifier Söz dizimindeki declaration-specifiers değeri, yalnızca depolama sınıfı tür değeri int için belirtilmişse register atlanabilir.

compound-statement, yerel değişken bildirimleri, dış olarak bildirilen öğelere başvurular ve deyimler içeren işlev gövdesidir.

İşlev Öznitelikleri, Depolama Sınıfı, Dönüş Türü, Parametreler ve İşlev Gövdesi bölümleri, işlev tanımının bileşenlerini ayrıntılı olarak açıklar.

Ayrıca bkz.

İşlevler