6.8 Pointers

  -------------

 

      In C-- pointers are not fully supported, and thus many things which are

  possible in ordinary C are not possible here.

 

      Example of use of pointers in C--:

 

  char *string[4]={"string1", "string2", "string3", 0}; //array of pointers

  char *str="string4";

 

  main()

  int i;

  char *tstr;

  {

      FOR(i=0; string[i]!=0; i++){

            WRITESTR(string[i]);

            WRITELN();

      }

      FOR(tstr=str;byte *tstr!=0; tstr++){

            WRITE(byte *tstr);

      }

  }

 

      Pointers can be used when passing options to functions and in the

  functions themselves as local or parametric variables. Pointers can also be

  used in structures. There can be pointers to pointers. There is now

  support of pointers to functions:

 

  void (*proc)();  //declaration of pointer to function

 

      By default pointers to a function are in PASCAL style, independent of

  the register in which the function name was written or the compilation

  mode. If another type of call must be used, a pointer to a function must be

  indicated at declaration.

 

      During initialization of pointers the compiler has no control over how

  the pointer is initialized, i. e., a pointer to 'int' may be assigned to a

  pointer to 'char', or a variable address may be assigned to a function.

  This may result in an error when the program is run.