# Main incompatibility of C code in C++

## Recommended Posts

paul23    100
Well my question is simple: what are the main things one should watch out for when looking at C code to "port" them to C++ code?

##### Share on other sites
Windryder    270
What do you mean exactly by "porting" C code to C++? Most modern C++ compilers support the relevant features of C99, meaning that C code will generally compile as C++. Cases where features exist in C99 but not in C++98/03, such as long long, are usually bridged by compiler extensions. Perhaps you're referring to the process of converting a procedural system into an object-oriented one?

##### Share on other sites
nullsquared    126
Quote:
 Original post by paul23Well my question is simple: what are the main things one should watch out for when looking at C code to "port" them to C++ code?

There are very little issues that you might encounter when compiling C as C++ (in terms of compiler errors). For example, if you have some really really old C then you might encounter the old-style function parameters:
func(a, b) // implicit int return type// declaring the parameter typesint a;char b;{    if (b == 'a') return a;    return 42;}

Which is not valid in C++.

##### Share on other sites
paul23    100
Quote:
 Original post by WindryderWhat do you mean exactly by "porting" C code to C++? Most modern C++ compilers support the relevant features of C99, meaning that C code will generally compile as C++. Cases where features exist in C99 but not in C++98/03, such as long long, are usually bridged by compiler extensions. Perhaps you're referring to the process of converting a procedural system into an object-oriented one?

Nah, just to those feature cases as you said.. - It's not that the code won't compile, I just want to know the differences..

##### Share on other sites
swiftcoder    18437
There are a few C99 features that are not supported by most C++ compilers. For example, most C++ compilers seem to ignore the C99 restrict keyword.

SiCrane    11839