Le code que tu as écrit en C me semble aussi valable sous linux (raspberry pi ou autre).
En revanche, si tu veux utiliser le code sous linux, il vas falloir le compiler pour linux. Pour ça, le plus simple est de copier le code sur le raspberry pi et l'y compiler. (Une autre solution est ce qu'on appelle la cross-compilation, ie compiler sur un matériel du code destiné à un autre matériel, mais c'est plus compliqué à mettre en place).
Une dernière solution, c'est d'utiliser le programme "wine" sur le raspberry pi, qui permet d'exécuter un .exe de windows sous linux (mais ça ne marche pas pour tous les programmes et c'est moins efficace, du coup je te déconseille vivement cette solution si c'est toi qui doit écrire le programme).
Pour la question compilée ou pas, je ne serais pas aussi tranché que Path, les deux ont leus avantages et inconvénients :
Compilé (type C):
+détection d'un nombre important d'erreurs lors de la compilation (dans un code interprété comme le python, tu peux par exemple avoir une erreur de type (par exemple essayer de soustraire un entier à une chaine de caractères) et ne pas t'en rendre compte avant que le programme n'exécute ce bout de code, ce qui peut arriver au bout de centaines d'heures d'utilisation si ce code n'est exécuté que dans un cas très rare)
+ en général le code est plus rapide lors de l'éxécution
+ souvent gestion plus facile et optimisé de tâches bas niveau (registres, ...)
+/- code souvent plus long à écrire, car il faut donner toutes les informations à l’écriture du code (types, ...) : ça prend du temps, mais ça peut aussi t'en faire gagner en t'évitant des erreurs et en améliorant la clarté du code
- il faut re-compiler le code à chaque modification (si c'est un gros programme, ça peut prendre longtemps, surtout s'il n'est pas bien découpé en fichiers indépendants)
- il faut compiler le code séparément pour chaque type de plateforme sur laquelle on veut l'utiliser
Interprété (type Python):
+ le même "exécutable" peut être utilisé sur les différents systèmes sans modification (un simple copier-coller suffit)
+ le programme peut être modifié très rapidement, vu qu'il n'est pas nécessaire de recompiler
+ souvent le code est un peu plus simple et rapide à écrire
- un programme "interpréteur" (python par exemple) doit être installé pour pouvoir exécuter le programme
- souvent moins optimisé en terme de RAM utilisée et de vitesse d’exécution
En pratique, pour choisir, ça dépend de plusieurs éléments :
- le langage avec lequel tu es le plus à l'aise
- dans quel(s) langage(s) tu trouve les librairies qu'il te faut pour ton projet, et si tu les connais déjà
- le type de plateforme (sur micro-controleur type Arduino, les langages compilés sont souvent la meilleur voir la seule option, dès que tu as un système d'exploitation "normal", tu as libre choix)
- de la nécessité de faire tourner le code sur un grand nombre de plateformes différentes (si c'est le cas, alors un programme interprété facilite la diffusion)
- du type de code : si c'est du bas niveau (ie proche du matériel et/ou beaucoup d'opérations au niveau de la mémoire), alors un langage compilé type C est souvent plus efficace. Si en revanche ton code est de haut niveau (ie gestion d'objets "complexes"), alors un langage type python sera souvent plus concis
- de ce que tu veux optimiser : si tu veux optimiser le temps d'exécution ou la RAM utilisée, alors un langage compilé sera souvent mieux. Si tu veux plutôt optimiser le temps passer à écrire le programme, alors le Python sera je pense mieux (à maîtrise égale du langage)