What is different in C

Compiler support:

  • C run the source file through a pre-processor before it compiles the program

  • The C compiler is a one-pass compiler while the Java compiler is a two-pass compiler

      • A one-pass compiler can not use definitions that occurs later in the source file

  • The C compiler only processes one C program source file

    Consequence:

      • C programs must use variable and function declarations    

What is different in C

Language features:

  • C has unsigned integer types (Java only has signed integer types)

  • C allows all integer/float type conversions without explicit casting

  • C has no function overloading (because C is not an OOP language)

  • C and Java have different scoping rules

  • C has static (= not dynamic) arrays and static (= not dynamic) objects

  • C does not have array bound checks (frequent cause of core dumps !)

  • C has a reference data type with supporting reference (&) and de-reference (*) operations