[vox] things that really suck about C!

Brian Lavender brian at brie.com
Sun Feb 28 18:35:28 PST 2010


I think if anything, C has been a certain detriment to the field of
computer science! 

One calls a function and the arguments are passed by value. Call a
function with an array as an argument, and feel free to modify its
contents!

Certainly, C++ added the idea of reference, but I think Pascal
simplifies these concepts much better. Yet, Pascal seems to be relegated
to the status as a legacy language!

brian


#include <stdio.h>

#define CAP 10

void mod_array(int a[])
{
  a[2] = 5;
}

void trychange(int a) 
{
  a = 2;
}

void reallychange(int *a) 
{
  *a = 2;
}

int main() {
  int b[CAP];
  int c;
  int i;

  printf("Load array and change a value\n");
  for (i=0; i < CAP; i++)
    b[i] = i + 20;


  mod_array(b);

  for (i=0; i < CAP; i++) 
    printf("b[%d] has value of %d\n",i,b[i]);

  c = 10;

  printf("c has a value of %d\n",c);
  trychange(c);

  printf("c has a value of %d after trychange(c)\n",c);

  reallychange(&c);

  printf("c has a value of %d after reallychange(&c)\n",c);
  

}

-- 
Brian Lavender
http://www.brie.com/brian/

"There are two ways of constructing a software design. One way is to
make it so simple that there are obviously no deficiencies. And the other
way is to make it so complicated that there are no obvious deficiencies."

Professor C. A. R. Hoare
The 1980 Turing award lecture


More information about the vox mailing list