?>Array ( [id] => 143 )
Scénario de test & Cas d'usage
Simulation der Deklaration mehrerer Prototypen, die verschiedene Funktionen einer wissenschaftlichen Bibliothek darstellen.
| 1 | /* Annahme: Eine große C-Bibliothek 'libscience.so' enthält Funktionen wie: |
| 2 | double compute_p_value(double z_score); |
| 3 | int sequence_alignment(const char* seq1, const char* seq2); |
| 4 | double molecular_weight(const char* formula); |
| 5 | // ... und 30 weitere Funktionen ... |
| 6 | */ |
| 1 | PROC CAS; |
| 2 | ACTION fcmpact.addPrototypes / |
| 3 | routineCode={ |
| 4 | "proto compute_p_value(double) link='c' return=double;", |
| 5 | "proto sequence_alignment(char[*], char[*]) link='c' return=int;", |
| 6 | "proto molecular_weight(char[*]) link='c' return=double;", |
| 7 | /* ... hier würden 30 weitere, syntaktisch korrekte Proto-Definitionen folgen ... */ |
| 8 | "proto calculate_entropy(double[*]) link='c' return=double;" |
| 9 | } |
| 10 | package="BioStat" |
| 11 | funcTable={name="scientific_library", caslib="casuser", replace=true} |
| 12 | saveTable=true; |
| 13 | RUN; QUIT; |
| 1 | PROC CAS; |
| 2 | TABLE.fetch / |
| 3 | TABLE={name="scientific_library", caslib="casuser"}, |
| 4 | where="_Package_ = 'BIOSTAT'"; |
| 5 | RUN; QUIT; |
Die Aktion verarbeitet die große Anzahl von Prototypen effizient und ohne Fehler. Die resultierende Tabelle 'scientific_library' enthält alle definierten Prototypen. Die Fetch-Abfrage, die nach dem Paket 'BIOSTAT' filtert, gibt alle hinzugefügten Funktionsdefinitionen zurück und bestätigt, dass der `package`-Parameter korrekt angewendet wurde.