C-Spracherweiterung (1)

Tipp: Nachdem der Artikel geschrieben wurde, kann das Inhaltsverzeichnis automatisch generiert werden, wie es erstellt wird, können Sie dem Hilfedokument auf der rechten Seite entnehmen



提示:以下是本篇文章正文内容,下面案例可供参考

1. Schlüsselwörter

1. volatile
Fügen Sie dies vor der Variablen hinzu, auch wenn die Variable zur Kompilierzeit nicht verwendet wird, wird sie nicht optimiert. Eingebettet wird häufig verwendet, da der Compiler keine Schritte auslassen darf, z. B. den Wert direkt in der CPU zwischenspeichern und den Wert dann direkt in der CPU lesen und dann den Hardware-E/A-Port nicht wiederholt lesen. Aber wir müssen den IO-Port wiederholt lesen.

Bücher in C-Sprache definieren das Schlüsselwort volatile folgendermaßen:

volatile erinnert den Compiler daran, dass sich die dahinter definierten Variablen jederzeit ändern können, also sagen Sie dem Compiler jedes Mal, wenn das kompilierte Programm diese Variable speichern oder lesen muss, dass er die Variable nicht optimieren soll, und er liest direkt von der Variablenspeicheradresse Read Daten, die einen stabilen Zugriff auf spezielle Adressen ermöglichen können.

Wenn kein flüchtiges Schlüsselwort vorhanden ist, kann der Compiler das Lesen und Speichern optimieren und vorübergehend den Wert im Register verwenden.Wenn diese Variable von anderen Programmen aktualisiert wird, kommt es zu Inkonsistenzen. (Einfach ausgedrückt: Das Schlüsselwort volatile beeinflusst das Ergebnis der Compiler-Kompilierung. Eine mit volatile deklarierte Variable bedeutet, dass sich die Variable jederzeit ändern kann. Führen Sie keine Kompilierungsoptimierung für Berechnungen im Zusammenhang mit der Variablen durch, um Fehler zu vermeiden.)

Cache (Cache): Die ursprüngliche Bedeutung bezieht sich auf einen Hochgeschwindigkeitsspeicher, dessen Zugriffsgeschwindigkeit schneller als allgemeiner Arbeitsspeicher (RAM) ist.Er verwendet normalerweise nicht die DRAM-Technologie wie der Systemhauptspeicher, sondern verwendet die teure, aber schnellere SRAM-Technologie. Die Einstellung des Caches ist einer der wichtigen Faktoren für die hohe Leistungsfähigkeit aller modernen Computersysteme.
Register: Register sind einige kleine Speicherbereiche, die zum Speichern von Daten innerhalb der CPU verwendet werden und zum vorübergehenden Speichern von Daten und Berechnungsergebnissen, die an Berechnungen beteiligt sind.
2. Nachdem die Konstante
hinzugefügt wurde, wird die Variable zu einer Konstante und kann nicht geändert werden. Die ursprüngliche Absicht ist es, Variablen auf den Flash zu legen, um Speicherplatz zu sparen.

Zweitens die Struktur

Die Strukturdeklaration nimmt keinen Platz ein, und der Platz wird erst nach der Instanziierungsdefinition belegt.

struct person wei = {"weidongshan", 40}; Nur dieser Satz weist Platz zu

1. Gewöhnlicher Strukturcode

Der Code lautet wie folgt (Beispiel):

/* 打印同学的姓名、年龄 */
struct person {
    
    
	char *name;
	int age;
};

int main( void )
{
    
    
/*	
	char *name = "weidongshan";
	int age = 40;

	char *name2 = "abc";
	int age2 = 10;

	char *name3 = "abc";
	int age3 = 10;
*/	
	struct person wei = {
    
    "weidongshan", 40};
		
	int i;
	
	dong = 123;
	i = 1; 
	i = 2;
	
	a = 1;
	c = 'A';
	buf[99] = 'B';
	
	prvSetupHardware();
	
	printf("sizeof(int) = %d, sizeof(char) = %d\r\n", sizeof(int), sizeof(char));
	printf("sizeof(int *) = %d, sizeof(char *) = %d\r\n", sizeof(int *), sizeof(char *));
	
	//printf("name = %s, age = %d\r\n", name, age);
	printf("name = %s, age = %d\r\n", wei.name, wei.age);
	
	/* 如果程序运行到了这里就表示出错了, 一般是内存不足 */
	return 0;
}

结果:
sizeof(int) = 4, sizeof(char) = 1
sizeof(int *) = 4, sizeof(char *) = 4
name = weidongshan, age = 40

Zusammenfassen

Lernen Sie von Wei Dongshans C-Sprachkurs und der Baidu-Enzyklopädie

Supongo que te gusta

Origin blog.csdn.net/lianghuajunone/article/details/123413028
Recomendado
Clasificación