2010-09-10 2 views
2

J'ai un morceau de code comme celui-ci (fichier Perl):Comment utiliser Perl's Inline :: C?

print "9 + 16 = ", add(9, 16), "\n"; 
print "9 - 16 = ", subtract(9, 16), "\n"; 

code C aussi,

#include<stdio.h> 

main() 
{ 
int x = 9; 
int y = 16; 
printf(" add() is %d\n", add(x,y)); 
printf(" sub() is %d\n", subtract(x,y)); 
// return 0; 
} 
int add(int x, int y) 
{ 
return x + y; 
} 

int subtract(int x, int y) 
{ 
return x - y; 
} 

Comment puis-je utiliser ce code C avec Perl en utilisant Inline::C? J'ai essayé mais je ne comprends pas exactement.

+0

pouvez-vous coller le code et à quel problème faites-vous face ?? Y at-il un problème avec le code que vous avez écrit ou vous ne savez pas comment l'écrire en utilisant C inl en ligne? –

+0

Vous est-il arrivé que les opérateurs d'addition/soustraction de perl soient également implémentés en C. J'imagine que vous n'économisez pas très peu (probablement rien) en faisant cela. Si vous implémentiez un algorithme en C, ce serait une histoire différente. Cela dit, si vous faites cela en tant qu'expérience pour déterminer comment fonctionne C en ligne, je rétracte mon commentaire ;-) – Benj

+0

Senthil, juste une suggestion, ignorez l'écriture de votre signature ou nom, il sera quand même affiché par pile débordement :) –

Répondre

8
  • Jetez un oeil à Inline::C-Cookbook - Une corne d'abondance de recettes Inline C, vous obtiendrez beaucoup de exemples en utilisant Inline avec C.
  • Voir Inline - Écrire des sous-routines Perl dans d'autres langages de programmation, vous apprendrez à utiliser Inline et vous obtiendrez des exemples C aussi.
4

essayer:

use Inline 'C'; 

print "9 + 16 = ", add(9, 16), "\n"; 
print "9 - 16 = ", subtract(9, 16), "\n"; 

__END__ 
__C__ 

int add(int x, int y) { 
return x + y; 
} 

int subtract(int x, int y) { 
return x - y; 
}