Bonjour,
je viens de l'univers SAS et je n'ai jamais fait de C++.
Afin d'étendre les possibilité du logiciel SAS, une nouvelle procédure a récemment été introduite afin de créer des fonctions à partir de code C++.
Un certain nombre de code sont donnés en exemple.
Je souhaite comprendre cet exemple
J'ai dans ma jeunesse fait un peu de Pascal donc je vois à peu près ce qu'est un pointeur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 proc proto package=sasuser.mylib.str2; struct linklist{ double value; struct linklist * next; struct linklist * prev; }; struct linklist * get_list(int); externc get_list; struct linklist * get_list(int len){ int i; struct linklist * list=0; list=(struct linklist*) malloc(len*sizeof(struct linklist)); for (i=0;i<len-1;i++){ list[i].value=i; list[i].next=&list[i+1]; } list[i].value=i; list[i].next=0; return list; } externcend; run; options pageno=1 nodate ls=80 ps=64; proc fcmp libname=sasuser.mylib; struct linklist list; list=get_list(3); * put list.value=; put list ; do while (^isnull(list.next)); list = list.next; * put list.value=; put list ; end; run;
Après avoir examiné le code ces deux derniers jours je commence à comprendre son début, cependant arrivé à la ligne suivante :
list=(struct linklist*)
je n'arrive pas à en saisir le sens, j'ai parcouru pas mal de cours pour débutant en C++ et je n'ai pour l'instant pas encore repéré de telle construction. Et je me demande si c'est bien du code C++ et dans ce cas quel est son sens ou bien si c'est une invocation propre à la Proc Proto de SAS (et dans ce cas je changerais de forum...).
Merci de votre aide.
Edit : après de nouvelles recherches la PROC PROTO semble accepter du code C ou C++ , comme je ne connais par leur syntaxe je pensais que le code ci-dessus était du C++ mais il semblerait que ce soit du C , si on pouvait me le confirmer peut-être que ce topic aurait plutot sa place dans le forum C et non C++.
Partager