Archives
D Programming
DD.gnu digitalmars.D digitalmars.D.bugs digitalmars.D.dtl digitalmars.D.dwt digitalmars.D.announce digitalmars.D.learn digitalmars.D.debugger C/C++ Programming
c++c++.announce c++.atl c++.beta c++.chat c++.command-line c++.dos c++.dos.16-bits c++.dos.32-bits c++.idde c++.mfc c++.rtl c++.stl c++.stl.hp c++.stl.port c++.stl.sgi c++.stlsoft c++.windows c++.windows.16-bits c++.windows.32-bits c++.wxwindows digitalmars.empire digitalmars.DMDScript |
c++ - Help needed!
Have been trying to figure out how to put a function in a separate file and make it work. Here is the main program, in a file named "tmpmain.c": #include "myPrint.c" void myPrintf(); int main() { int i=1; myPrintf(); return 0; } Here is the function myPrintf(), in a file named "myPrintf.c": void myPrint() { printf("ok!"); } This is the error message I got when trying to compile under the DOS command of Win XP: E:\bjs\C>dmc tmpmain link tmpmain,,,user32+kernel32/noi; OPTLINK (R) for Win32 Release 7.50B1 Copyright (C) Digital Mars 1989 - 2001 All Rights Reserved tmpmain.obj(tmpmain) Error 42: Symbol Undefined _myPrintf --- errorlevel 1 I'm just a beginner. Any help would be appreciated. Jul 24 2005
xyk wrote:#include "myPrint.c" Jul 24 2005
1) you don't need to declare myPrintf in the "tmpmain.c" - just remove the line void myPrintf(); it's useless in tihs case and it's only confusing here (see next, you only have the function declared but not defined, therefore the compiler message is correct). 2) there is missing "f" at the end of function name "myPrint()" in the "myPrintf.c". 3) use #include <stdio.h> in the "myPrintf.c" 4) most better approach will be to use header (.h) files instead of including .c files in another .c's 5) (hint) do not declare functions in pure C like "func()", pure C conformance requires declaring "func(void)" if the function has none parameters (most C compilers compiles even "func()", but some don't and the compiler is not liable to compile such code) Jul 25 2005
|