`
bingtears
  • 浏览: 188867 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

关于在VC++中使用 extern C遇到的stdafx.h的问题

    博客分类:
  • C++C
阅读更多
楼主在 C/C++ / C++ 语言 提问:
在VC++中,有一个test.c文件:  
   
  extern   "C"   {  
        void   test()    
        {    
                  ...  
        }  
  }  
   
在编译test.c的时候,报告出错(编译头的问题:fatal error C1010:在查找预编译头指令时遇到意外的文件结尾),如果在test.c中#include  "stdafx.h",则显示fatal error C1853:预编译头文件来自编译器的早期版本,或者预编译头为C++而在C中使用它(或相反) 
怎么回事啊?

跟帖:
1 楼
  把test.c改成test.cpp,即把C文件改成cpp文件,  
  因为在VC2003下默认生成的stdafx.h文件中有#include<iostream>  
  而这个是C++的,C语言用不了.也就是报错中的:  
  预编译头为   C++   而在   C   中使用它

2 楼
编译头的问题:fatal error C1010:在查找预编译头指令时遇到意外的文件结尾,这个错误我以前遇到的时候是 在头文件末尾加回车.看看楼主是不是此类错误?





0
0
分享到:
评论

相关推荐

    51单片机C语言中.c文件和.h文件的关联

    在51单片机开发环境中,使用C语言编程时,经常会涉及到.c文件(源代码文件)和.h文件(头文件)的管理。这两个文件类型在程序编译和链接过程中扮演着不同的角色。掌握如何正确地关联和使用这两种文件,对于编写高效...

    05extern.tar.gz

    05extern.tar.gz 05extern.tar.gz 05extern.tar.gz 05extern.tar.gz 05extern.tar.gz 05extern.tar.gz 05extern.tar.gz 05extern.tar.gz 05extern.tar.gz 05extern.tar.gz 05extern.tar.gz 05extern.tar.gz 05extern...

    C语言extern使用方法总结.doc

    在C语言中,extern关键字是一个非常重要的概念,它可以用来声明全局变量和函数,但是很多人却不太了解它的使用方法。在本文中,我们将详细介绍extern关键字的使用方法和注意事项。 声明和定义 在C语言中,声明和...

    Win 10 64bit系统中VC++ 2015封装动态链接库DLL.pdf

    在函数声明前使用`extern "C"`和`__declspec(dllexport)`来确保函数名在C++名称修饰(也称为名称 mangling)过程中不受影响,这样其他语言或编译器才能正确识别。 - 在对应的`.cpp`文件中,实现这些函数的定义。 3...

    51单片机C中.c文件和.h文件

    为了防止多次包含同一个.h文件导致的问题,通常会在.h文件中使用条件编译指令来避免重复包含: ```c #ifndef _FILENAME_H_ #define _FILENAME_H_ // 文件内容... #endif // _FILENAME_H_ ``` 这里的`_FILENAME_H_`...

    教你如何利用vc++2008为MATLAB开发DLL文件.doc

    完成上述步骤后,你就可以在MATLAB中使用自定义的C/C++函数了。通过设置断点,你可以利用VC++的调试功能深入理解代码执行过程,这对于调试和优化至关重要。 总的来说,这篇文档详细介绍了如何利用VC++2008开发...

    C语言中extern关键字详解.docx

    C语言中extern关键字详解.docx ,C语言中extern关键字详解.docx

    stdint.h inttypes.h getopt.h

    在C编程语言中,`stdint.h`,`inttypes.h`和`getopt.h`是三个重要的头文件,它们提供了不同类型定义和命令行参数处理的功能。让我们分别详细探讨这三个头文件的内容及其在实际编程中的应用。 `stdint.h`是标准整数...

    iOS extern使用教程

    4. **分类 Category**:在Objective-C的Category中,如果要添加静态属性,也需要使用`extern`来声明,因为Category不能直接定义实例变量。 5. **全局函数**:当有一个函数需要在多个源文件中调用,但只在一个文件中...

    extern关键字的作用.docx

    - 尽可能使用`extern "C"`来处理C++中的C语言接口,以防止名称修饰(name mangling)带来的问题。 6. **总结**: `extern`关键字在C和C++中主要用于管理多文件间的变量和函数共享,它允许你在不定义的情况下声明...

    VC++中如何调用matlab函数.pdf

    在VC++中调用MATLAB函数,主要是利用MATLAB引擎,这是一种允许其他编程语言(如C++)与MATLAB交互的接口。MATLAB引擎提供了丰富的功能,包括打开和关闭MATLAB对话、发送命令、读取和写入数据,使得开发者能够在保持...

    windef.h源文件

    为了支持 C++ 编译器,这里使用了 `extern "C"` 来确保即使在 C++ 环境下编译,也能正确处理 C 风格的函数原型。这样可以避免 C++ 的名称修饰导致的问题。 #### 基础类型定义 ```cpp #ifndefBASETYPES #...

    getopt.h和cpp

    在Linux系统中,`getopt.h` 和 `getopt.cpp` 是两个与命令行参数处理相关的文件。`getopt` 是一个广泛使用的函数,用于解析命令行选项和参数,它在许多C和C++程序中都有应用。让我们深入探讨一下这两个文件以及它们...

    VC中的全局变量.doc

    `,然后在需要用到该变量的其他`.cpp`文件中使用`extern`关键字声明,如`extern int myInt;`。这种方法限制了全局变量的访问范围,仅限于包含该声明的文件。 - 另一种常见做法是在`stdafx.cpp`中定义全局变量,例如...

    C/C++语言中全局变量重复定义问题的解决方法

    在C语言中使用extern 关键字来定义全局变量的时候,我们需要在.h文件和.c文件中重复定义,这种重复,导致了出错几率的增加。 今天,在整理自己的代码的时候,考虑到我写的代码从一至终都是在一个cpp文件里面。于是,...

    extern C详细解释

    考虑以下示例,假设我们有一个C语言编写的头文件`test_extern_c.h`,其中定义了一个函数`ThisIsTest`: ```c #ifndef __TEST_EXTERN_C_H__ #define __TEST_EXTERN_C_H__ #ifdef __cplusplus extern "C" { #endif ...

    浅谈VC++工程的文件组织 .docx

    对于全局变量,一个常见的做法是将其定义放在.cpp文件中,例如`HWND g_hwndMain`,并在需要使用的其他文件中通过`extern`关键字进行声明,如`extern HWND g_hwndMain`。这样做可以避免重复定义导致的链接错误,同时...

    extern用法详解.doc

    ,在另外一个文件中使用 extern char *a; 进行声明,这样是不正确的。因为指向类型 T 的指针并不等价于类型 T 的数组。应该将声明改为 extern char a[]。 3. extern 函数 extern 也可以用于函数声明。例如,在一个...

    winnt.h头文件

    `WinNT.h` 是一个非常重要的 Windows 头文件,它包含了 Windows 内核和系统服务所使用的数据类型、宏定义、结构体等。对于 Windows 程序员来说,熟练掌握 `WinNT.h` 中的各种定义是非常必要的。本篇文章将详细介绍 `...

    C语言之extern声明辨析

    extern关键字是C语言中的一种修饰符,用于声明变量或函数的定义在其他文件中。它可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。 1. extern...

Global site tag (gtag.js) - Google Analytics