Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

チュートリアルのCのattribute((constructor))およびattribute((destructor))構文はポイントですか?


ここでは、2つの関数が存在し、1つの関数がメイン関数の前に実行され、別の関数がメイン関数の後に実行されるコードの記述方法を説明します。これらの機能は、mainを実行する前にいくつかの起動タスクを実行し、mainを実行した後にいくつかのクリーンアップタスクを実行するために使用されます。

このタスクを実行するには、これら2つの関数の属性を設定する必要があります。属性がコンストラクター属性の場合はmain()の前に実行され、属性がデストラクタ型の場合はmain()の後に実行されます。

GCC関数を使用しています。関数は__attribute__()です。この場合、2つの異なるオプションを使用しています。 __attribute __()関数を使用したコンストラクタとデストラクタ。構文__attribute__((constructor))は、プログラムの起動時に関数を実行するために使用されます。構文__attribute__((destructor))は、main()関数が完了したときに関数を実行するために使用されます。より良いアイデアを得るために例を読んでください。

#include <stdio.h>
void before_main() __attribute__((constructor));
void after_main() __attribute__((destructor));
void before_main() {
   printf("This is executed before main.\n");
}
void after_main() {
   printf("This is executed after main.");
}
main() {
   printf("Inside main\n");
}

出力

This is executed before main.
Inside main
This is executed after main.

  1. 関数を関数およびメソッドとして呼び出す方法は?

    以下は、関数を関数およびメソッドとして呼び出すためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style>  

  2. JavaScriptの破壊と関数パラメータ

    以下は、JavaScriptで関数パラメーターを分解するコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style>