User Tools

Site Tools


cplusplus:c_versus_cplusplus

View page as slide show

C versus C++

Adapted by Mithat Konar from
Differences Between C and C++
by Robert Niemann (Century College)
2017-04-30

Adapted by Mithat Konar

C is not object-oriented

  • You can't create classes or objects in C.
  • You can't use any of C++'s predefined classes and objects.
    • cin
    • cout
    • string
    • class
    • etc.

Input and output

  • Input/output is generally more complicated in C.

Console I/O

  • printf() write a formatted string to the display
  • scanf() read a formatted string from the keyboard
  • putchar() write a single character to the display
  • getchar() read a single character from the keyboard
  • puts() write strings to the display
  • gets() read a string from the keyboard

File I/O

  • fopen(), fclose() open/close a text file.
  • feof() detect end-of-file marker in a file.
  • fscanf() read formatted string from a file.
  • fprintf() write formatted string to a file.
  • fgets() read a string from a file.
  • fputs() write a string to a file.
  • fgetc() read single character from a file.
  • fputc() write a single character to a file.

Different header files

  • <stdio.h> input/output
  • <stdlib.h> standard utility functions
  • <string.h> string operations
  • <ctype.h> character class tests
  • <math.h> mathematical functions

C does not have

  • boolean type
  • reference variables
  • function overloading
  • // single line comments (in older versions of C).

Defining variables

  • You must define variables at the beginning of a function.
    int  main( )
    {
        int a,b,c;
        float x,y,z;
        ...

Prototypes

  • You don’t need function prototypes.
    int main()
    {
        foo();
        return 0;
    }
     
    int foo()
    {
        printf( "Hello world" );
    }
  • Best practice to use them anyway.

Named constants and macros

  • const is available only in newer versions of C.
  • #define precompiler directive typically used instead.
    #define PI 3.1415
    #define TAX_RATE 0.065
  • #define can also be used to create macros.
    #define square(x) ((x) * (x))

Dynamic memory is different

  • Allocating memory:
    int *x = (int *) malloc(sizeof(int));          /* allocate a single int */
    int *xArry = (int *) malloc(sizeof(int) * 10); /* allocate array of ints */
  • Deallocating memory:
    free(x);
    free(xArry);

Structs

  • You must use the struct keyword when defining struct variables.
    struct MyStruct
    {
        int x;
    };
     
    struct MyStruct aStructInstance;

Some C Resources

C Examples

cplusplus/c_versus_cplusplus.txt · Last modified: 2017/04/30 23:44 by mithat