Heim > Backend-Entwicklung > C#.Net-Tutorial > Benutzerdefinierte C-Sprachfunktion (detaillierte Grafik- und Texterklärung)

Benutzerdefinierte C-Sprachfunktion (detaillierte Grafik- und Texterklärung)

烟雨青岚
Freigeben: 2020-06-19 14:12:20
nach vorne
17275 Leute haben es durchsucht

Benutzerdefinierte C-Sprachfunktion (detaillierte Grafik- und Texterklärung)

Das Konzept der Funktion

Jedes C-Programm hat mindestens eine Funktion, die Hauptfunktion main(), Wenn die Aufgabe des Programms relativ einfach ist, wird der gesamte Code in der Funktion main() geschrieben. In der tatsächlichen Entwicklung ist die Aufgabe des Programms jedoch häufig komplexer, wenn der gesamte Code in der Funktion main() geschrieben wird , die Funktion main() Es wird sehr groß und aufgebläht sein, mit komplexer Struktur und wiederholtem Code.

Wir können den Code entsprechend der Logik des Programms und der Aufgabenteilung in verschiedene benutzerdefinierte Funktionen unterteilen. main() befasst sich mehr mit der Geschäftslogik und dem Verarbeitungsablauf, wenn es sich um bestimmte Aufgaben handelt ausgeführt werden müssen, rufen Sie einfach diese benutzerdefinierten Funktionen auf.

Um das Verständnis zu erleichtern, unterteilen wir Funktionen in zwei Typen: einer ist eine Bibliotheksfunktion und der andere ist eine benutzerdefinierte Funktion.

Bibliotheksfunktionen werden von der C-Sprache oder dem System bereitgestellt. Sie implementieren einige Grundfunktionen wie scanf und printf und können direkt im Programm verwendet werden.

Benutzerdefinierte Funktionen sind von Programmierern geschriebene Funktionen, um eine bestimmte Aufgabe auszuführen. Der Zweck besteht darin, eine bestimmte Funktion zu realisieren oder das Hauptprogramm prägnanter zu gestalten. Programmierer müssen benutzerdefinierte Funktionen deklarieren und definieren, bevor sie sie verwenden können.

Benutzerdefinierte Funktionsdeklaration

Benutzerdefinierte Funktionsdeklaration teilt dem Compiler den Namen der Funktion und wie die Funktion aufgerufen werden soll, einschließlich der Daten der Funktionsrückgabewert Typ, Funktionsname, Parameterliste.

Einige Programmierer bezeichnen Funktionsdeklarationen auch als Funktionsprototypen, aber der Wortlaut ist anders, aber die Bedeutung ist dieselbe.

Die Syntax zum Deklarieren einer Funktion in C-Sprache lautet wie folgt:

                                                                      Geben Sie return_type ein:

Nach Abschluss der Funktion Die Aufgabe kann einen Wert zurückgeben. return_type ist der Datentyp des von der Funktion zurückgegebenen Werts, der int, char, double oder andere benutzerdefinierte Datentypen sein kann. Einige Funktionen führen nur Aufgaben aus, ohne einen Wert zurückzugeben. In diesem Fall wird return_type durch das Schlüsselwort void dargestellt. Die Deklarationssyntax einer Funktion ohne Rückgabewert lautet wie folgt:

                                                                                                                                                                                                   

Funktionsnamen sind Bezeichner und die Benennungsregeln sind dieselben wie für Variablennamen.

Parameterliste der Funktionsparameterliste: Wenn die Funktion aufgerufen wird, muss der Aufrufer Werte an die Parameter von übergeben die Funktion. Die Parameterliste enthält den Typ und die Reihenfolge der Parameter. Die Parameterliste ist optional, d. h. die Funktion darf keine Parameter haben.

Die Deklarationssyntax einer Funktion ohne Parameter lautet wie folgt:  

Beispiel für Funktionsdeklaration:

 

deklariert eine Funktion, der Rückgabewert ist vom Typ int, der Funktionsname ist checksc, die Funktion hat nur einen Parameter Int-Höhe, beachten Sie, dass die Funktion Das Semikolon am Ende der Deklarationsanweisung darf nicht fehlen.

Wenn Sie eine benutzerdefinierte Funktion mit einem Werkzeug vergleichen, ist die Funktionsdeklaration die Konstruktionszeichnung des Werkzeugs.

Definition der benutzerdefinierten Funktion

Die benutzerdefinierte Funktion ist ein Werkzeug. Wenn Sie möchten, dass dieses Werkzeug verwendet wird, reicht es nicht aus, nur Konstruktionszeichnungen zu erstellen Das Tool, die Definition einer Funktion, ist die Entität dieses Tools und stellt den eigentlichen Funktionskörper bereit. Um die Funktion der Funktion zu realisieren, schreibt der Programmierer Code für die erforderliche Funktion.

Die Syntax der Funktionsdefinition in der C-Sprache lautet wie folgt:

Der Rückgabetyp, der Funktionsname und Die Parameterliste muss mit der Funktionsdeklaration konsistent sein.

Der Funktionskörper enthält die Sammlung von Anweisungen, die ausgeführt werden müssen, um die Aufgabe abzuschließen, in geschweiften Klammern.

Beispiel:

Benutzerdefinierte C-Sprachfunktion (detaillierte Grafik- und Texterklärung)

Hinweis: Fügen Sie nach der Funktion keine Punkte hinzu Definition Nr., das Folgende ist falsch und Anfänger neigen dazu, diesen Fehler zu machen.

Benutzerdefinierte C-Sprachfunktion (detaillierte Grafik- und Texterklärung)

So deklarieren und definieren Sie benutzerdefinierte Funktionen

Wenn sich die benutzerdefinierte Funktion nur im Aufruferprogramm befindet Wenn es im Aufruferprogramm verwendet wird, kann es im Aufruferprogramm deklariert und definiert werden. Die Deklaration erfolgt im Allgemeinen im oberen Teil des Aufruferprogramms, und die Definition erfolgt im Allgemeinen im unteren Teil des Aufruferprogramms die C-Sprache, aber um das Programm leichter lesbar zu machen.

Beispiel für die Deklaration und Definition von benutzerdefinierten Funktionen im Aufrufprogramm (book45.c):

Benutzerdefinierte C-Sprachfunktion (detaillierte Grafik- und Texterklärung)

In book45.c ist die Funktion checksc zur Bestimmung der Figur eines Supermädchens keine öffentliche Funktion, sie wird nur vom Entwurfsprogramm verwendet, also deklariert und definiert in book45.c.

Wenn die benutzerdefinierte Funktion ein öffentliches Funktionsmodul ist, z. B. zum Vergleichen der Größe zweier Zahlen, kann sie in anderen Headerdateien (z. B. _public.h) und dem Aufrufer deklariert werden Das Programm muss die Vorverarbeitungsanweisung #include verwenden, um die von der Funktion deklarierte Header-Datei einzuschließen.

Wenn die benutzerdefinierte Funktion ein öffentliches Funktionsmodul ist, kann sie in anderen Programmdateien (z. B. _public.c) definiert werden. Beim Kompilieren werden das Aufrufprogramm und die Programmdateien für benutzerdefinierte verwendet Funktionen werden zusammen kompiliert.

Im folgenden Beispiel wird die Funktion max in der Header-Datei _public.h deklariert, in der Programmdatei _public.c definiert und im Programm book46.c aufgerufen.

Header-Datei der benutzerdefinierten Funktion (_public.h):

Programmdatei der benutzerdefinierten Funktion (_public.c):

Benutzerdefinierte C-Sprachfunktion (detaillierte Grafik- und Texterklärung)

Caller-Programmdatei (book46. c)

Benutzerdefinierte C-Sprachfunktion (detaillierte Grafik- und Texterklärung)

Der Kompilierungsbefehl lautet wie folgt:

Hinweis:

1) In Zeile 6 von book46.c

,

Die hier enthaltenen Header-Dateien sind doppelte Anführungszeichen, keine spitzen Klammern . Im Allgemeinen wird #include verwendet, um Header-Dateien von Bibliotheksfunktionen einzuschließen, die von der C-Sprache bereitgestellt werden, und #include "" wird verwendet, um vom Programmierer definierte Header-Dateien einzuschließen.

2) Kompilieren Sie beim Kompilieren des Aufrufprogramms das Aufrufprogramm und die Programmdatei der benutzerdefinierten Funktion zusammen. Andernfalls tritt beim Kompilieren der folgende Fehler auf.

Die richtige Kompilierungsanweisung sollte gcc -o book46 book46.c _public.c

3)

Für die Benennung der Header-Dateien _public.h und _public.c von benutzerdefinierten Funktionen gibt es keine Vorschriften. Sie werden vom Programmierer selbst benannt, ebenso wie die Benennung von Variablen Versuchen Sie, für das Programm einige aussagekräftige Namen zu verwenden.

Bibliotheksfunktionen

Der Aufruf dieser Funktionen kann einige grundlegende Funktionen vervollständigen C-Standardbibliothek (C-Standardbibliothek), auch als Bibliotheksfunktionen bezeichnet, z. B. printf, scanf, memset, strcpy usw. Es gibt Hunderte von Bibliotheksfunktionen in der CC-Sprache, aber nur zwei bis drei Zehntel davon werden häufig verwendet. In den folgenden Kapiteln werde ich die Verwendung einiger gängiger Bibliotheksfunktionen im Detail vorstellen Je mehr Sie sie nutzen, desto vertrauter werden Sie mit ihnen.

Die deklarierte Headerdatei der C-Sprachstandardbibliotheksfunktion wird im Verzeichnis /usr/include wie folgt gespeichert:

           <asset.h>   <ctype.h>  <errno.h>   <float.h>   <limits.h>
       <locale.h>   <math.h>   <setjmp.h>  <signal.h>   <stdarg.h>
       <stddef.h>   <stdlib.h>   <stdio.h>  <string.h>  <time.h>
Nach dem Login kopieren

C Sprachbibliotheksfunktion Die Definitionsdatei lautet /usr/lib/gcc/x86_64-redhat-linux/4.4.4/libgcc.a (verschiedene Compilerversionen haben unterschiedliche Verzeichnisnamen). Dies ist eine gepackte statische Linkbibliotheksdatei das Wissen über Linkbibliotheken später.

Wir haben libgcc.a beim Kompilieren des Programms mit gcc nicht eingebunden. Das liegt daran, dass der gcc-Compiler es standardmäßig einschließt. Der Header der vom Programmierer definierten Funktion Dateien und Programmdateien verfügen nicht über diese Behandlung und müssen manuell eingebunden werden.

Welche Header-Dateien müssen eingebunden werden?

Wenn wir eine Bibliotheksfunktion verwenden und deren Header-Datei nicht einschließen, wird eine Warnung angezeigt wird während der Kompilierung wie folgt angezeigt:

Welche Header-Dateien sollten enthalten sein? Es gibt zwei Methoden, um nach Informationen auf Baidu zu suchen, und die andere besteht darin, die vom Linux-System bereitgestellte Hilfe zu verwenden. Geben Sie als Beispiel man strcpy ein und drücken Sie die Eingabetaste in der Befehlszeile.

Benutzerdefinierte C-Sprachfunktion (detaillierte Grafik- und Texterklärung)

man zeigt die Header-Datei der Funktionsdeklaration (Zeile 5), die Parameter, die Verwendung und den Rückgabewert der Funktion an.

Beachten Sie, dass, wenn die im Programm verwendete Bibliotheksfunktion ihre Header-Datei nicht enthält, dies möglicherweise nicht unbedingt eine Warnung während der Kompilierung ist, sondern auch ein Fehler sein kann, die Funktion kann nicht sein erkannt usw. Dies hängt vom Compiler ab. Die Compiler für verschiedene C-Sprachen sind unterschiedlich.

Methode zum Aufrufen von Funktionen

Bibliotheksfunktionen werden vom System deklariert und definiert und sind vorgefertigte Werkzeuge. Benutzerdefinierte Funktionen werden von Programmierern selbst deklariert und definiert und sind von Programmierern ergänzte Tools. Unabhängig davon, ob es sich um Standardtools oder Zusatztools handelt, sind sie alle Tools und für Benutzer ohne Unterschied gleich.

In der Sprache C sind Funktionsaufrufe sehr flexibel. Sie können eine Anweisungszeile belegen, Variablen als Konstanten zugewiesen oder als Parameter von Funktionen verwendet werden.

Wenn der Rückgabewert der Funktion ungültig ist, bedeutet dies, dass die Aufgabe der Funktion hauptsächlich darin besteht, eine bestimmte Funktion auszuführen. Sie wird normalerweise in einer einzigen Zeile geschrieben und hat eine exklusive Anweisung.

如果函数的返回值不是void,如果单行书写,表示不关心它的返回值,也可以当成常量用于任何表达式中。

例如:

Benutzerdefinierte C-Sprachfunktion (detaillierte Grafik- und Texterklärung)

函数调用的过程

当程序调用函数时,程序控制权会转移给被调用的函数。被调用的函数执行函数体的代码,当函数的返回语句被执行时,或到达函数的结束括号时,就把程序控制权交还给调用者程序。

示例(book47.c)

Benutzerdefinierte C-Sprachfunktion (detaillierte Grafik- und Texterklärung)

运行结果

Benutzerdefinierte C-Sprachfunktion (detaillierte Grafik- und Texterklärung)

函数参数的传递

关于函数的参数,在很多教程中有很多说法,如“形参”、“实参”、“值传递”、“地址传递”、“引用”等,这些说法把简单的概念复杂化了,大家不必理会。

函数的参数可以理解为函数的局部变量,参数传递就是调用者程序把变量(或常量)的值复制一份给函数的参数,简单说来就是复制的过程。一旦完成数据的复制,调用者程序的变量和函数的参数就再也没有瓜葛了,所以,在函数调用的过程中,函数的参数的值发生改变并不会影响调用者程序的变量的值。

我们在调用函数的时候,不关心函数参数的名称,函数参数的名称是函数自己的事情,只在函数内部使用,与调用者无关。

示例(book48.c)

Benutzerdefinierte C-Sprachfunktion (detaillierte Grafik- und Texterklärung)

运行结果

const约束

const 是 constant 的缩写,意思是“恒定不变的”!它是定义只读变量的关键字,或者说 const 是定义常变量的关键字。用 const 定义常变量的方法很简单,就在通常定义变量时前面加 const 即可,如:

const  int  a = 10;
Nach dem Login kopieren

那么用 const 修饰后和未修饰前有什么区别呢?它们不都等于 10 吗?

用 const 定义的变量的值是不允许改变的,即不允许给它重新赋值,即使是赋相同的值也不可以。所以说它定义的是只读变量。这也就意味着必须在定义的时候就给它赋初值。

在变量前加const约束,主要用于定义函数的参数,表示该参数在函数中是只读取,不允许改变,如果函数中试图改变它的值,编译的时候就会报错。

例如:

函数max在声明的时候,参数a和b都加了const约束,在函数中,a=10;和b=20;这两代码试图改变a和b的值。编译的时候如下:

编译无法通过。

应用经验

在我的课程中,会介绍常用的库函数,但也有漏掉的。查资料是程序员的基本技能。

例如要查找C语言复制字符串功能的函数,在百度上输入“C语言复制字符串”搜索就可以了,你想查什么就输入什么。

Benutzerdefinierte C-Sprachfunktion (detaillierte Grafik- und Texterklärung)

然后,打开多几个网页看看,基本上就差不多了。

注意一个问题,网上的内容太多太杂乱,重点关注百度百科的文章。

1)测试函数的功能

要使用函数,只需要关注它需要包含的头文件、函数名、返回值、参数的数据类型和参数的顺序,不必关心参数的名称。

以strcpy函数为例,函数的声明如下。

    
char *strcpy(char *dest, const char *src);
Nach dem Login kopieren

函数名:strcpy

返回值:返回dest,一般没用,不理它。

第一个参数是目标字符串;第二个参数是源字符串,有const约束。

写代码测试一下:

char strname[50];
         strcpy(strname,"西施");
         printf("=%s=\n",strname);
Nach dem Login kopieren

然后,看看输出的结果是不是“=西施=”,用=号夹住输出的内容是为了看清楚有没有其它的字符。

感谢大家的阅读,希望大家收益多多。

本文转自:https://blog.csdn.net/wucz122140729/article/details/98369860

推荐教程:《C语言

Das obige ist der detaillierte Inhalt vonBenutzerdefinierte C-Sprachfunktion (detaillierte Grafik- und Texterklärung). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage