proc cas;
/* 1. Définition du code C dans une variable CASL (Source block) */
source c_source_code;
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
/* Fonction arithmétique simple */
int myadd(int a, int b) {
return a + b;
}
/* Fonction de manipulation de chaînes (complétée) */
/* Note : En prod, attention à la gestion mémoire de 'result' */
void mystring(char* result, char* str, int num) {
sprintf(result, "%s_%d", str, num);
}
endsource;
/* 2. Chargement de l'action set nécessaire */
loadactionset "fcmpact";
/* 3. Compilation et Création du Prototype */
fcmpact.addPrototypes /
/* Le code source défini plus haut */
routineCode = {c_source_code}
/* Nom du package logique qui regroupera ces fonctions */
package = "MyAlgoC"
/* La table CAS qui contiendra les binaires compilés */
funcTable = {name="MyCLib_Binaries", replace=TRUE}
/* Option pour garder la table en mémoire après l'action */
saveTable = TRUE;
print "Compilation C terminée. La bibliothèque est prête à être chargée par FCMP.";
run;
quit;
fcmpact