How do you link a C++ program to C functions?
Answers were Sorted based on User's Feedback
Answer / ravindranath m
The C++ compiler does something called as "name mangling"
for functions, while a C compiler does not. Name mangling
is a process wherein the name of the original function in a
c++ program gets changed to a new name via adding some
prefix and/or postfix to it.
As a result, a c program cannot find the required definition
when trying to link to a cpp object file.
This can be resolved by putting the following declaration in
a c++ header file that contains the cpp function declarations.
#ifdef __cplusplus
extern "C" {
#endif
// function declarations go here...
// ...
#ifdef __cplusplus
}
#endif
| Is This Answer Correct ? | 25 Yes | 4 No |
Answer / nikhil upadhyay
By using the extern "C" linkage specification around the C function declarations.
Programmers should know about mangled function names and type-safe linkages. Then they should explain how the extern "C" linkage specification statement turns that feature off during compilation so that the linker properly links function calls to C functions. Another acceptable answer is "I don't know. We never had to do that." Merely describing what a linker does indicates that the programmer does not understand the issue that underlies the question.
| Is This Answer Correct ? | 0 Yes | 0 No |
Answer / prabakaran
including the header file #include<stdio.h>
| Is This Answer Correct ? | 3 Yes | 20 No |
What is a dll entry point?
What is main function in c++ with example?
What is the use of string in c++?
Write a program that will count the number of digits in an input integer up to value MAX_VALUE (2147483647). Thus, for an input of 5837 the output should be 4 digits Make sure that your program works for the numbers 0, 1, and 10. For the number 0, the output should be 1 digit
How a pointer differs from a reference?
What are guid? Why does com need guids?
Write a Program to find the largest of 4 no using macros.
Differentiate between declaration and definition.
Is there any difference between int [] a and int a [] in c++?
What is the difference between method and message?
What can I use instead of namespace std?
Tell me difference between constant pointer and pointer to a constant.