HPlogo HP C/HP-UX Programmer's Guide: HP 9000 Computers > Chapter 5 Programming for Portability

Practices to Avoid

» 

Technical documentation

Complete book in PDF

 » Table of Contents

To make a program portable, you need to minimize machine dependencies. The following are programming practices you should avoid to ensure portability:

  • Using dollar signs ($) in identifiers.

  • Using underscores (_) as the first character in an identifier.

  • Using sized enumerations.

  • Reliance on implicit expression evaluation order.

  • Making assumptions regarding storage allocation and layout.

  • Dependence on the number of significant characters in an identifier. Identifiers should differ as early as possible in the name. ANSI C requires that the first 31 characters of an internal name are significant. Only the first 6 characters of an external name are required to be significant by ANSI C.

  • Dereferencing null pointers.

  • Dependence on pointer representation.

  • Dependence on being able to dereference a pointer to an object that is not correctly aligned.

  • Dependence on the ability to store a pointer in a variable of type int.

  • Dependence on case distinctions in external names.

  • Dependence on char being signed or unsigned.

  • Dependence on bitwise operations in signed integers.

  • Dependence on bit-fields of any type except int, unsigned int, or signed int.

  • Dependence on the sign of the remainder in integer division.

  • Dependence on right shifts of negative signed values.

  • Dependence on more than six declarators modifying a basic type.

  • Dependence on values of automatic variables after a longjmp call when the values were changed between the setjmp and longjmp calls.

  • Dependence on being able to call setjmp within an arbitrarily complex expression.

  • Dependence on file system characteristics.

  • Dependence on string literals being modifiable.

  • Dependence on extern declarations within a block being visible outside of the block.

© Hewlett-Packard Development Company, L.P.