南宁京象建站公司,公司网站建设价格低,为网站制定一个推广计划,北京网站建设 标准型 新翼wslUbuntuvscodec
每次打开wsl#xff0c;进入ubuntu中新建文件夹进行c编程的时候经常报错#xff0c;显示配置文件有问题#xff0c;但是每次按照vscode官方文件配置的话是没有问题的。百思不得其解。
今晚发现了问题所在。每次新建工作区的时候会自动生成.vscode文件夹Ubuntuvscodec
每次打开wsl进入ubuntu中新建文件夹进行c编程的时候经常报错显示配置文件有问题但是每次按照vscode官方文件配置的话是没有问题的。百思不得其解。
今晚发现了问题所在。每次新建工作区的时候会自动生成.vscode文件夹里面是配置好的tasks和launch的json文件所以每次使用官方文件配置的之后那个工作区就可以正常使用了但是如果在Ubuntu中新建文件夹的话.vscdoe文件夹没有复制过来或者说没有重新正确建立所以每次都报错。 所以解决方法就是在本地windows中建立一个专门用于跑ubuntu系统的区域配置好之后一劳永逸vscdoe配置wsl下的c调试环境一旦有需要就在配置好的文件夹下调试这样的话.vscode文件都不会有问题。
附linux下的编译命令
在使用cd 可以改变路径比如到d盘下的project文件夹则是cd /mnt/d/project
在路径下新建文件夹是 mkdir newfolder
编译cpp文件是g helloworld.cpp -o project
运行编译好的文件是 ./project 也可以不用指定文件名进行编译如g helloworld.cpp
这样生成的可执行文件直接用 ./a.out命令执行 函数重模板 function template
应用场合如果有多种不同类型的变量需要比较大小常规写法是每种不同类型的变量都要写一个函数来比较这样繁琐荣誉。
函数模板解决了这个问题。
如下代码在一个项目中有个项目需求是能够实现多个函数用来返回两个数的最大值要求能支持char类型、int类型、double类型变量。然后呢根据这个需求我们写了以下这个代码
#include iostreamusing namespace std;//比较int 类型
int Max(int a, int b)
{return a b ? a : b;
}//比较char 类型
char Max(char a, char b)
{return a b ? a : b;
}//比较float 类型
float Max(float a, float b)
{return a b ? a : b;
}int main(void)
{int n 1;int m 2;cout max(1, 2) Max(n, m) endl;float a 2.0;float b 3.0;cout max(2.0, 3.0) Max(a, b) endl;char i a;char j b;cout max(a, b) Max(i, j) endl;return 0;
}同样的函数体但是针对不同类型的参数需要多次写这个非常相似的函数这是非常繁琐的而函数模型的出现就是解决这种问题。
当我们需要多个函数体一样的函数时我们可以使用函数模板
#include iostreamusing namespace std;template typename T //T is any data type you want like int or float
T Max(T a, T b) {return a b ? a : b;
}int main(void)
{int n 2;int m 3;coutmax(2,3) max(n, m)endl;char x a;char y b;coutmax(a,b) max(x, y)endl;float i 3.0;float j 4.0;coutmax(3.0,4.0) max(i, j)endl;return 0;
}
函数重载 function overloading
C中规定同一作用域中不能有同名函数出现但是c中允许在同意作用域中出现同名函数但是这些函数的参数类型和参数个数不同。这些同名函数用来实现不同的功能这就是函数的重载。同样不同类型的数据比较大小函数名相同但根据参数类型和参数个数总能匹配到相对于的函数上。
#include iostreamusing namespace std;int Max(int a, int b)
{return a b ? a : b;
}char Max(char a, char b)
{return a b ? a : b;
}float Max(float a, float b)
{return a b ? a : b;
}int main(void)//main 函数中的Max函数总能根据参数的类型和个数匹配到对应的函数
{int n 1;int m 2;cout max(1, 2) Max(n, m) endl;float a 2.0;float b 3.0;cout max(2.0, 3.0) Max(a, b) endl;char i a;char j b;cout max(a, b) Max(i, j) endl;return 0;
}总结函数模板是对函数重载的简化。