Comment émuler un constructeur ou un bloc statique en C

Je améliore un outil. Veuillez noter que cet outil sera lié au programme de test, qui aura la fonction main( ) , donc mon outil ne peut pas avoir de main. Ce que cet outil a, c’est un certain nombre de fonctions que le programme de test utilisera.

Maintenant, en plus, je veux append une timer à cet outil. L’idée est la suivante: lorsque le programme de test est lié à cet outil et démarre, le minuteur doit démarrer automatiquement.

S’il s’agissait de C ++, j’aurais créé une classe avec un constructeur, de sorte que chaque fois que la classe est chargée, le constructeur est appelé en premier, et je peux initialiser mon temporisateur dans le constructeur.

S’il s’agissait de Java, j’aurais simplement créé un bloc statique global et placé le code temporel dans le bloc statique.

Mais mon outil est uniquement en C sous Linux, alors comment puis-je atteindre cet objective?

Aidez-moi, s’il vous plaît.

Cela ressemble à votre cas aussi:

Comment puis-je obtenir le GCC __atsortingbute__ ((constructeur)) sous OSX?

Des documents de GCC:

constructeur
destructeur
constructeur (priorité)
destructeur (priorité)

L’atsortingbut constructeur provoque l’appel automatique de la fonction avant que l’exécution ne saisisse main (). De même, l’atsortingbut destructor provoque l’appel automatique de la fonction après la fin de main () ou l’appel de exit (). Les fonctions avec ces atsortingbuts sont utiles pour initialiser des données qui seront implicitement utilisées pendant l’exécution du programme.

Écrivez votre propre remplacement pour le fichier object crt*.o qui appelle main() et liez-le lorsque vous le construisez.