警告:在C++模式下将'c-header'输入视为'c ++ - header'时,不推荐使用此行为

 心忆泪痕 发布于 2023-01-16 10:59

这个clang ++错误消息是什么意思,为什么我得到它?我似乎无法在互联网上找到任何关于它的东西......
clang: warning: treating 'c-header' input as 'c++-header' when in C++ mode, this behavior is deprecated

这是我的代码,

MergeSort.h:

#ifndef __MERGESORT_H__
#define __MERGESORT_H__

#include 
using namespace std;

class MergeSort;

class MergeSort
{
    public:

    MergeSort();
    MergeSort(const int* list, int length);
    ~MergeSort();

    friend ostream& operator<< (ostream& os, const MergeSort& ms);

    private:

    int* list;
    int len;
};

ostream& operator<< (ostream& os, const MergeSort& ms);
#endif

MergeSort.cpp:

#include 
#include "MergeSort.h"

using namespace std;

MergeSort::MergeSort()
{
    list = new int[1];
    list[0] = 0;
    len = 0;
}

MergeSort::MergeSort (const int* t, int length)
{
    if (t) {
        len = length;
        list = new int[len];
        for (int i = 0; i < length; i++)
            list[i] = t[i];
    }
    else {
        list = new int[1];
        list[0] = 0;
        len = 0;
    }
}

MergeSort::~MergeSort()
{
    delete[] list;
}

ostream& operator<<(ostream& os, const MergeSort& ms)
{
    for (int i = 0; i < ms.len; i++)
        os << ms.list[i];
    return os;
}


int
main()
{
    int list[] = {1,2,3,4};
    int list_len = sizeof(list)/sizeof(int);
    MergeSort ms = MergeSort(list, list_len);
    cout << ms << endl;
    cout << "hello world" << endl;
}

并输出:

[gyeh@gyeh mergesort]$ clang++ -c -g -Wall MergeSort.cpp MergeSort.h
clang: warning: treating 'c-header' input as 'c++-header' when in C++ mode, this behavior is deprecated
[gyeh@gyeh mergesort]$ clang++ MergeSort.o -o MergeSort
[gyeh@gyeh mergesort]$ valgrind --leak-check=yes ./MergeSort
==25774== Memcheck, a memory error detector
==25774== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
==25774== Using Valgrind-3.9.0 and LibVEX; rerun with -h for copyright info
==25774== Command: ./MergeSort
==25774== 
1234
hello world
==25774== 
==25774== HEAP SUMMARY:
==25774==     in use at exit: 0 bytes in 0 blocks
==25774==   total heap usage: 1 allocs, 1 frees, 16 bytes allocated
==25774== 
==25774== All heap blocks were freed -- no leaks are possible
==25774== 
==25774== For counts of detected and suppressed errors, rerun with: -v
==25774== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 1 from 1)

Some program.. 33

您不应该编译头文件,只编译源文件.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有