我的小代码编译得很好,但是当我运行 IntVector.cpp 时,我实际上收到了数千个警告,如下所示:
IntVector:3:1533: warning: null character ignored [-Wnull-character]
...<U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000>
IntVector:8:3: warning: null character ignored [-Wnull-character]
<U+0008><U+0000><U+0000><E9><U+0000><U+0000><U+0000><U+0000>H<8D>E<D0>H...
?IntVector:9:2415: warning: null character ignored [-Wnull-character]
...<U+0000><U+0000><9E><U+0000><U+0000><U+0000>|<U+0003><U+0000><U+0000>...
等等。这是我第一次尝试运行 C++ 程序,因此我认为问题可能出在我的设置中。我在 Mac 上使用 Emacs 进行编码、编译和终端运行。
IntVector.cpp
#include <iostream>
#include "IntVector.h"
#include <cmath>
using namespace std;
int* array = new int[0];
int num_elements;
int array_size;
int expansion_factor;
void IntVector::expandArray(){
}
void IntVector::add(int val){
cout << "Hello";
}
void IntVector::remove(int index){
}
int IntVector::get(int index) const{
return index;
}
void IntVector::removeLast(){
}
void IntVector::set(int index, int val){
}
std::string IntVector::toString()const {
return "";
}
IntVector::IntVector(int initial_size){
}
IntVector:: ~IntVector(){}
int main(){
IntVector v(5);
v.add(5);
}
IntVector.h
#ifndef INTVECTOR_H_
#define INTVECTOR_H_
using std::cout;
class IntVector {
private:
int* array;
int num_elements;
int array_size;
int expansion_factor;
void expandArray();
public:
void add(int val);
void remove(int index);
int get(int index) const;
void removeLast();
void set(int index, int val);
std::string toString() const;
IntVector(int initial_size);
~IntVector();
};
#endif
此警告意味着您的源代码包含空字符。这几乎总是错误的。
造成这种情况的一个潜在原因可能是您使用编辑器保存使用宽字符编码的文件,但编译器期望输入具有窄编码。
警告的另一个典型原因是尝试包含或编译二进制文件。
cpp 向量
您似乎正在尝试编译该文件IntVector
而不是文件IntVector.cpp
。想必,IntVector
是一个二进制文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)