Tout simplement parce que le C est un langage bas niveau, donc très proche de la machine (on entend par là que c'est au programmeur de gérer la mémoire)
Un développeur C# instancie un objet de cette façon
public class obj
{
string text;
string text1;
}
var obj = new obj();
Sans savoir que derrière se cache
struct obj
{
char *text;
char *text1;
}
struct obj *instanciate_obj()
{
struct *obj = malloc(sizeof(obj));
if (obj == NULL) {
// Handle error
// Out of memory
return NULL;
}
obj->Text = strdup("coucou");
// OU ENCORE
obj->Text = malloc(sizeof(char) * X);
if (obj->Text == NULL) {
// Handle error
// Out of memory
return NULL;
}
obj->Text1 = malloc(sizeof(char) * Y);
if (obj->Text1 == NULL) {
// Handle error
// Out of memory
return NULL;
}
......
return obj;
}
Sans parler des méthodes de base fournies par le Framework .Net qu'il faut entièrement réécrire en C.
Sans parler du fait que le C est un langage procédural, donc pas d'objet.
Sans parler du fait que la moindre erreur de gestion de la mémoire en C fait planter entièrement le programme (avec un jolie SegFault offert)
Sans parler du nombre de ligne concidérable qu'il faut à un dév C pour égaler les résultats d'un dev C#.
et j'en passe eheh
Enjoy !