C:在一个void类型的函数里,return后跟一个有返回值的函数

int textf(int n)
{
printf("Textf:%d\n",n);
}
void text(int n)
{
printf("Text:%d\n",n);
return textf(n);
}
int main()
{
text(3);
return 0;
}
我这样程序可以正常运行,请问这个是跟编译器有关还是语法本身就允许的?
以及像text这样,如果return后面是跟一个表达式的话,
是只求其值而不返回吗?如果想这样跟一个函数,它实际上会调用那个函数而不会将函数的返回值返回吗?
以及我这样子递归在CODE BLOCKS里可以正常运行,同问这个是跟编译器有关吗:
void text(int n)
{
if(!n) return printf("END!\n");
printf("%d\n",n);
return text(n-1);
}
int main()
{
text(3);
return 0;
}

c

5个回答

我的网络上传图片受限,贴出编译时终端的报错信息如下

casanovaz:0106 ie$ cc -c returnTest.c
returnTest.c:6:1: warning: control reaches end of non-void function
[-Wreturn-type]
}
^
returnTest.c:10:5: error: void function 'text' should not return a value
[-Wreturn-type]
return textf(n);
^ ~~~~~~~~
1 warning and 1 error generated.

Zindow
Zindow 请问您用的是什么编译器发出的警告呢?
3 年多之前 回复
Zindow
Zindow 那这样的意思是跟编译器有关咯?我这里用的code blocks,编译设置使用了-std=c99命令
3 年多之前 回复

你这段代码在VC 6下,我贴了一下,提示了2个错误。
 图片说明
在编码规范上所有函数都要有返回值,根据要求不同返回值不同,你这个应该是编辑器或者环境的问题,
返回值为void 的函数,return ;用左侧的方式去返回。其他的就返回规定类型的数据。

按道理是不应该通过的,int textf(int n)函数应该又返回值,这个在语法上就已经错误了,编译时就该报错了,text(int n)这个返回值也是错误。
看看我编译时的提示的错误,这才是正常的嘛:

void是禁止return的,编译器一般都不会通过,但我记得VC++6.0的void main可以return 0,但也就main函数编译能通过,其他的也都不行,void里面return是语法错误。

void 类型,return后是无类型的 直接return;

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
c语言中函数返回值类型的问题

看一道改错题: #include<stdio.h> #include<conio.h> #include<math.h> proc(int k)//很显然根据主调函数和返回值类型知道这里缺少类型 { int n;float s,w,p,q; n=1; s=1.0; while(n<=k){ w=2.0*n; p=w-1.0; q=w+1.0; s=s*w*w/p/q; n++; } return s; } void main(){ system("CLS"); printf("%f\n",proc(20)); } 我觉得既然变量s是float型,就应该改成float proc(int k)。可是本题的答案确实这样子改的 double proc(int k)我想问答案这样改对吗?如果对道理是什么?

Void函数不能返回void函数?

<div class="post-text" itemprop="text"> <p>I wonder why this is not valid:</p> <pre><code>Class Foobar { private function foo(): void { return; } public function bar(): void { return $this-&gt;foo(); // Compile Error: A void function must not return a value } } </code></pre> <p>I know the RFC says this: </p> <blockquote> <p>A function with a void return type, or void function, may either return implicitly, or have a return statement without a value</p> </blockquote> <p>But IMHO <code>foo</code> is void, thus it should be allowed... </p> </div>

用typeScript 的接口,定义一个函数,返回值为void,去实现这个接口时候,返回值可以是其他类型;

interface SearchFunc1 { (a: number, b: string): void; } let funDemo1:SearchFunc1 = function (a,b) { return '12' // 我理解:这里语法应该报错 } //这个函数应该没有返回值 console.log(funDemo1(1,'2')) //正常执行 返回 '12' 函数定义为没有返回值 interface SearchFunc2 { (a: number, b: string): string; } let funDemo2:SearchFunc2 = function (a,b) { return false;//语法报错 }

C++函数返回类型错误 void return type assumed

![图片说明](https://img-ask.csdn.net/upload/201604/13/1460552880_533211.png) 函数void和int 都提示这两句错误 main前面没 主函数只是main() void换int 加return0 都试过了 函数下面加了下面这两句才出错的 s=sqrt(p(p-l1)(p-l2)(p-l3)); cout<<"所构成的三角形面积为:"<<s<<endl; 提示s=....这句错了

c++ 关于虚函数的返回值问题

定义Shpae类为抽象类,公用派生类Circle 代码如下: ``` #include<iostream> using namespace std; //定义Shape抽象类 class Shape { public: virtual void shapename()const=0;//定义输出形状名称的纯虚函数 virtual float area()const { return 0.0; }//定义面积的虚函数 }; //定义圆形类 class Circle:public Shape { public: Circle(float r = 0) { rad = r; }//构造函数 virtual void shapename()const { cout << "Circle:" << endl;}//对虚函数进行重定义 virtual float area()const;//对虚函数进行重定义 protected: float rad; }; float Circle::area()const { return 3.14159*rad*rad; } int main() { Circle c(5.0); Shape *p;//定义指向基类的指针 //使指针指向Circle类 p = &c; p->shapename();//动态关联 p->area(); system("pause"); } ``` 我想通过shape类派生出多个类,其中有一个求面积的虚函数,在主函数中通过指向基类的指针p访问时后p->shapename();正常, 但是p->area();这行没用实现,运行结果如下:![图片说明](https://img-ask.csdn.net/upload/202002/06/1580973162_995568.png) 个人感觉是因为area()函数返回值的问题。 恳请各位解答!十分感谢!

rror C2084: 函数“Student::~Student(void)”已有主体 1> : 参见“{dtor}”的前一个定义

# 报错说已有主体。但我检查没有啊跪求大佬解惑(一个c++学生信息系统) ``` #include<string.h> using namespace std; #define SIZE 80 //宏定义语句!!不要加; class Student { private: char*name; //姓名 char ID[19]; //身份证 char number[10]; ///学号 char speciality[20];//专业 int age; //年龄 public: Student(); Student(char*n,char *id,char *nm,char *spe,int a);//有参构造//定义为静态数组,参数仍为字符指针,获取函也为指针 Student(const Student&pre); ~Student(); void intput(); void output(); char* getname(); char* getID(); char* getnumber(); char* getspec(); int getage(); }; #endif ``` ``` #include"identify student.h" //ps:".h"文件的实现的cpp文件需要和.h文件同名为约定俗成:(cpp文件中包含了.h就会被编译器识别) Student::Student () {} //无参构造函数 Student::Student(char*n,char *id,char *nm,char *spe,int a) //有参构造函数 { if(n) { name=new char[strlen(n)+1]; strcpy(name,n); } id=ID; nm=number; spe=speciality ; a=age; } Student::~Student () { if(name) delete[]name; } Student::Student(const Student&pre) //拷贝构造函数 { if(pre.name) { delete[]name; name=new char[strlen(pre.name)+1]; strcpy(name,pre.name); } else name=0; strcpy(ID,pre.ID); strcpy(number,pre.number); strcpy(speciality ,pre.speciality ); age=pre.age; } void Student::output() { cout<<"姓名"<<age<<endl; cout<<"年龄"<<age<<endl; cout<<"身份证号码"<<ID<<endl; cout<<"专业"<<speciality <<endl; cout<<"学号"<<number<<endl; } void Student ::intput() { char n[10]; cout<<"输入姓名:"; //通过判断使输入兼容了修改函数的功能? cin>>n ; if(name)delete []name; name=new char[ strlen(n)+1]; strcpy( name, n ); cout<<"输入身份证:"; cin>>ID ; cout<<"输入年龄:"; cin>>age; cout<<"输入专业:"; cin>>speciality ; cout<<"输入学号:"; cin>>number; } Student::~Student() { if(name) delete[]name; } int Student::getage() { return age; //获取年龄 } char*Student::getID () { return ID; //获取身份证 } char*Student::getname () { return name; //获取姓名 } char*Student::getnumber() { return number; //获取学号 } char*Student::getspec() { return speciality ; //获取专业 } ``` ``` #include<iostream> #include "identify student.h" using namespace std; const int N=10; //最大学生人数 void menu(); //显示菜单 void OutputStu( Student *array ); //输出学生信息 void IntputStu(Student *array); //输入学生信息 int SearchStu( Student *array, char *na); //查询学生信息 int Count=0; //全局变量:当前学生人数 int main() { Student array[N]; //声明学生对象数组 int choice; do { menu(); cout<<"Please Intput your choice:"; cin>>choice; getchar(); //增加该语句,读走回车符 if( choice>=0 && choice <= 3 ) switch(choice) { case 1:IntputStu(array);break; case 2:cout<<"Intput the name searched"<<endl; char na[20]; cin>>na; int i; i=SearchStu(array, na); if(i==N)cout<<"查无此人!\n"; else array[i].output(); break; case 3:OutputStu(array); break; default:break; } }while(choice); return 0; } void menu() //显示菜单函数 { cout<<"**********1.录入信息**********"<<endl; cout<<"**********2.查询信息**********"<<endl; cout<<"**********3.浏览信息**********"<<endl; cout<<"**********0.退 出**********"<<endl; } void OutputStu( Student *array) //输出对象数组元素 { cout<<"学生总人数="<<Count<<endl; for(int i=0 ; i<Count ; i++) array[i].output(); } int SearchStu( Student *array, char *na ) //按姓名查询 { int i,j=N; //设置j的初值为N for(i=0 ; i<Count ; i++) if( strcmp( array[i].getname() , na) == 0 ) j=i; //记录下标值 return j; //返回下标值 } void IntputStu(Student *array ) //输入对象数组元素 { char ch; do { array[Count].intput(); Count++; cout<<"继续输入吗?(Y or N )"<<endl; cin>>ch; }while(ch=='Y'); } ``` 1>e:\编程仓库\2号仓库(c++)\大实验2号\大实验2号\identify student.cpp(62): error C2084: 函数“Student::~Student(void)”已有主体 1> e:\编程仓库\2号仓库(c++)\大实验2号\大实验2号\identify student.h(19) : 参见“{dtor}”的前一个定义 1> 正在生成代码... 1> 1>生成失败。 1>

调用不了void函数 error: invalid use of void expression|

#include<stdio.h> int fun(char ch[]) { int len = 0,i=0; while(ch[i]!='\0') { len++; i++; } return len; } void strcaps(char ch[],char chs[]) { int i; for(i=0; i<=fun(ch)&&i<=sun(chs); i++) { ch[i]=chs[i]; } } int main() { char ch[100],chs[100]; scanf("%s %s",ch,chs); printf("%s",strcaps(ch,chs)); return 0; }

如何定义一个返回值为HANDLE类型的函数

本人菜鸟新手 C语言 想把Openprocess封装为一个函数 有没有人可以写个事例返回值为HANDLE类型的函数

c语言中使用int main,那么其他的函数必须要有返回值吗

c语言中使用int main,那么其他的函数必须要有返回值吗

Java函数:这么写的错误在哪?实际并不清楚返回值为空(void)和其他返回值类型有什么区别

Java函数:这么写的错误在哪?实际并不清楚返回值为空(void)和其他返回值类型有什么区别 ![图片说明](https://img-ask.csdn.net/upload/201611/13/1479051555_242718.png)

C语言中字符数组作为函数返回值出现的问题

之前在这里问过这个问题,但可能是表述不清,收效甚微,今天再次提出这个问题,希望各位知情者能帮我解答一下,谢谢! 下面将简化后的代码贴出来: ```c #include <stdio.h> #define N 4 char *char_array(int n); int print_array(char *p, int n); int main(void) { char *p = NULL; p = char_array(N); print_array(p, N); return 0; } char *char_array(int n) { static char test[N] = {0}; int i = 0; for(i = 0; i < n; i++) test[i] = 'A'; return test; } int print_array(char *p, int n) { int i = 0; for(i = 0; i < n; i++) putchar(*(p+i)); putchar('\n'); return 0; } ``` 在子函数中字符数组做静态声明,是为了返回的数组首地址所指的那片内存不会因为子函数的调用完成而被释放掉。 下面贴出单步调试的过程: 设置断点,单步调试 ![断点调试](https://img-ask.csdn.net/upload/201705/10/1494405625_269125.png) 这是在return数组首地址之前看到的,数组元素正常 ![before return](https://img-ask.csdn.net/upload/201705/10/1494405713_786345.png) 这是在return后,从返回的首地址读取数组得到的,可以看到数组末尾多出了一个0x01的元素 ![after return](https://img-ask.csdn.net/upload/201705/10/1494405823_176945.png) 打开数组首地址对应的内存地址,可以清楚看到 ![memory](https://img-ask.csdn.net/upload/201705/10/1494405891_666688.png) 如果编译器将字符数组作为字符串的一种形式进行处理,在得到字符串的首地址之后,会向后一直搜索,直到搜索到'\0'为止,也可以理解,因为0x01后面就是'\0',但是为什么每次运行程序,后面都会多出一个0x01,而不是其他的什么字符,出现一次是巧合,但每次出现算是问题了吧。 希望有知道其中原因的能帮我解答一下,两个问题: 1.为什么后面会多一个元素? 2.为什么这个元素是0x01? 谢谢!

java中除了非void方法有返回值需要用到return语句外

java中除了非void方法有返回值需要用到return语句外,还有其他什么语句需要retrun语句 因为我看程序源码的时候看到一个方法有两条return 语句,我看来看去只发现这段程序代码只有一个方法,其中还有if....else if语句还有try....catch语句。

C++ std::function的用法

我想实现std::function定义的函数类型可以传递参数。 参数类型设置为void的时候,语法是没有错的: ``` typedef std::function<void(void)> TestFunc; class Test{ public: void setFunc(TestFunc f){ fn = f; } private: TestFunc fn; }; void test(){ Test t; t.setFunc(func); } void func(){ /*………………*/ } ``` *** 有参数的时候会报语法错误: ```c typedef std::function<void(int,int)> TestFunc; class Test{ public: void setFunc(TestFunc f){ fn = f; } private: TestFunc fn; }; void test(){ Test t; t.setFunc(func); } void func(int i,int j){ /*………………*/ } ``` **显示错误信息**: `不存在从 "void (int i, int j)" 转换到 "std::function<void (int i, int j)>" 的适当构造函数` 请问这是为什么啊~

求助void类型函数是如何实现用递归输出1-n个数字

求助请问大神以下printN函数是怎么实现递归输出的呀?新人求助!! ``` #include <stdio.h> void printN(int N) { if(N) { printN(N-1); printf("%d\n",N); } return; } main() { int n; scanf("%d",&n); printN(n); } ```

java中关于return和void

我知道return是有返回值,void没有。这两个有什么区别?什么情况下使用return,什么情况下使用void?

java中一个void修饰的方法无返回值,那么有是不是返回一个空对象,有空对象这种说法吗

java中一个void修饰的方法无返回值,那么有是不是返回一个空对象,有空对象这种说法吗

java反射,自动调用方法,方法的返回值类型是不一定的,怎么得到方法的返回值类型的原来的类型!

java反射动态获取方法的返回值类型? ![图片说明](https://img-ask.csdn.net/upload/201811/08/1541668477_850877.png) ![图片说明](https://img-ask.csdn.net/upload/201811/08/1541668489_297052.png) 代码如下: ``` package javase; import java.lang.reflect.Constructor; import java.lang.reflect.Method; import java.lang.reflect.Type; import java.util.ArrayList; import java.util.List; public class Person { static List<String> list; public void eat() { System.out.println("我是eat()函数"); } public String sayHello(String name) { return "hello,我是" + name + "!"; } public String jump(String name, int age) { return "hello,我是" + name + ",我今年" + age + "岁了!"; } public List<String> returnList() { // List<String> list = new ArrayList<String>(); list = new ArrayList<String>(); list.add("令狐冲"); list.add("韦小宝"); list.add("张无忌"); list.add("杨过"); list.add("乔峰"); return list; } public static void main(String[] args) throws Exception { Class cla = Class.forName("javase.Person"); Constructor constructor = cla.getConstructor(); Object obj = constructor.newInstance(); Method[] declaredMethods = cla.getDeclaredMethods(); for (Method method : declaredMethods) { System.out.println(method.getName() + " / " + method); Class[] parameterTypes = method.getParameterTypes(); if (parameterTypes.length > 0) { System.out.print(method.getName() + "方法的参数类型:"); } else { System.out.print(method.getName() + "方法没有参数"); } for (Class parameterType : parameterTypes) { System.out.print(parameterType.getName() + "\t"); } System.out.println("\n--------------------------------------------------"); } System.out.println("******************************"); // 使用反射,动态调用对象的函数 Method method = cla.getMethod("eat"); Object returnValue = method.invoke(obj); System.out.println(returnValue); // 动态调用对象的函数 Method method2 = cla.getMethod("sayHello", String.class); Object returnValue2 = method2.invoke(obj, "令狐冲"); System.out.println(returnValue2); // 动态调用对象的函数 Method method3 = cla.getMethod("jump", String.class, int.class); Object returnValue3 = method3.invoke(obj, "令狐冲", 16); System.out.println(returnValue3); // 动态调用对象的函数 Method method4 = cla.getMethod("returnList"); Type returnType = method4.getGenericReturnType(); System.out.println(method4.getName() + "方法的返回值类型=" + returnType); /* * returnList方法返回值类型是List<String>,所以returnValue4变量原本的类型是List<String> * 还有一个问题值得我们思考,每个方法的返回值类型都可能不一样,我们在利用反射调用完invoke()方法后,得到的返回值类 * 型都是Object,怎么转换回每个方法它自己的原本的返回值类型呢? */ Object returnValue4 = method4.invoke(obj); System.out.println("方法的返回值类型:" + method4.getReturnType().cast(method4.invoke(obj))); System.out.println(returnValue4 + " / " + returnValue4.getClass()); for (String str : list) { System.out.println("利用反射自动调用完returnList方法后集合元素" + str); } List<String> returnValue5 = (List<String>) method4.invoke(obj); for (String string : returnValue5) { System.out.println(string); } } } ``` 一言以蔽之,我就是想做到如下的代码这样: ``` Method method4 = cla.getMethod("returnList"); //我想下面的Object变成动态数据类型(即returnList方法的返回值类型) Object returnValue4 = method4.invoke(obj); //有没有可能变成下面这样 method4.getReturnType() returnValue4 = (method4.getReturnType())method4.invoke(obj); //到时候就可以拿到每个方法的具体的返回值,方法返回Map,我就可以拿到Map,方法返回int,我就拿到int,方法返回String,我就拿到String,方法返回List<Student>,我就可以拿到List<Student> ``` 运行结果截图: ![图片说明](https://img-ask.csdn.net/upload/201811/08/1541668669_521947.png) ![图片说明](https://img-ask.csdn.net/upload/201811/08/1541668680_381683.png)

在VS2005中单个工程里建立两个CWinThread的派生类,编译时发出C2084错误,怎么解决?

**=====描述=====** 我在VS2005中用项目->添加类添加了两个CWinThread类的派生类——CMyThread与CFloatWndThread,现在编译时报C2084错误,百度上都说是函数有定义了两个函数体,但我没发现有什么重定义啊~~请问大家有何高招?? **=====代码=====** //MyThread.h #include "stdafx.h" // CMyThread class CMyThread : public CWinThread { DECLARE_DYNCREATE(CMyThread) protected: CMyThread(); // 动态创建所使用的受保护的构造函数 virtual ~CMyThread(); afx_msg void OnStateChange(UINT wp,LONG lp); NOTIFYICONDATA caps; public: virtual BOOL InitInstance(); virtual int ExitInstance(); HICON capson,capsoff; CWinThread* ThreadP; protected: DECLARE_MESSAGE_MAP() }; #endif // MyThread.cpp : 实现文件 // #include "stdafx.h" #include "Project.h" #include "MyThread.h" // CMyThread IMPLEMENT_DYNCREATE(CMyThread, CWinThread) CMyThread::CMyThread() { } CMyThread::~CMyThread() { } //下面代码没有错误,省略。。 //FloatWndThread.h #pragma once #ifndef _FLOAT_WINDOW_THREAD_ #define _FLOAT_WINDOW_THREAD_ #include "FloatWnd.h" // CFloatWndThread class CFloatWndThread : public CWinThread { DECLARE_DYNCREATE(CFloatWndThread) DECLARE_DYNAMIC(CFloatWndThread) static CObject* PASCAL CFloatWndThread::CreateObject(); protected: virtual ~CFloatWndThread(); public: CFloatWndThread(); virtual BOOL InitInstance(); virtual int ExitInstance(); protected: DECLARE_MESSAGE_MAP() private: HMODULE hMod; CFloatWnd* pFWnd; }; #include "FloatWndThread.cpp" #endif // FloatWndThread.cpp : 实现文件 // #ifndef _FLOAT_WINDOW_THREAD_CPP #define _FLOAT_WINDOW_THREAD_CPP #include "stdafx.h" #include "Project.h" #include "FloatWndThread.h" #include "FloatWnd.h" //using namespace Inflict; // CFloatWndThread IMPLEMENT_DYNCREATE(CFloatWndThread, CWinThread) CFloatWndThread::CFloatWndThread(){} CFloatWndThread::~CFloatWndThread(){} BOOL CFloatWndThread::InitInstance() { hMod = LoadLibraryA("FloatWnd.dll"); if(hMod) { pNewFloatWnd NewFloatWnd = (pNewFloatWnd)::GetProcAddress(hMod,"NewFloatWnd"); pShowFloatWnd ShowFloatWnd = (pShowFloatWnd)::GetProcAddress(hMod,"ShowFloatWnd"); if(NewFloatWnd&&ShowFloatWnd) { pFWnd=NewFloatWnd(); if(pFWnd) { ShowFloatWnd(pFWnd,NULL); //pFWnd->DoModal(); } } } // TODO: 在此执行任意逐线程初始化 return TRUE; } int CFloatWndThread::ExitInstance() { // TODO: 在此执行任意逐线程清理 return CWinThread::ExitInstance(); } BEGIN_MESSAGE_MAP(CFloatWndThread, CWinThread) END_MESSAGE_MAP() // CFloatWndThread 消息处理程序 #endif =====输出===== 1>FloatWndThread.cpp 1>d:\我的文档\visual studio 2005\projects\project\project\floatwndthread.h(11) : error C2535: “CRuntimeClass *CFloatWndThread::_GetBaseClass(void)”: 已经定义或声明成员函数 1> d:\我的文档\visual studio 2005\projects\project\project\floatwndthread.h(10) : 参见“CFloatWndThread::_GetBaseClass”的声明 1>d:\我的文档\visual studio 2005\projects\project\project\floatwndthread.h(11) : error C2086: “const CRuntimeClass CFloatWndThread::classCFloatWndThread”: 重定义 1> d:\我的文档\visual studio 2005\projects\project\project\floatwndthread.h(10) : 参见“CFloatWndThread::classCFloatWndThread”的声明 1>d:\我的文档\visual studio 2005\projects\project\project\floatwndthread.h(11) : error C2535: “CRuntimeClass *CFloatWndThread::GetThisClass(void)”: 已经定义或声明成员函数 1> d:\我的文档\visual studio 2005\projects\project\project\floatwndthread.h(10) : 参见“CFloatWndThread::GetThisClass”的声明 1>d:\我的文档\visual studio 2005\projects\project\project\floatwndthread.h(11) : error C2535: “CRuntimeClass *CFloatWndThread::GetRuntimeClass(void) const”: 已经定义或声明成员函数 1> d:\我的文档\visual studio 2005\projects\project\project\floatwndthread.h(10) : 参见“CFloatWndThread::GetRuntimeClass”的声明 1>d:\我的文档\visual studio 2005\projects\project\project\floatwndthread.h(12) : error C2535: “CObject *CFloatWndThread::CreateObject(void)”: 已经定义或声明成员函数 1> d:\我的文档\visual studio 2005\projects\project\project\floatwndthread.h(10) : 参见“CFloatWndThread::CreateObject”的声明 1>d:\我的文档\visual studio 2005\projects\project\project\floatwndthread.cpp(12) : error C2084: 函数“CObject *CFloatWndThread::CreateObject(void)”已有主体 1> d:\我的文档\visual studio 2005\projects\project\project\floatwndthread.h(10) : 参见“CreateObject”的前一个定义 1>d:\我的文档\visual studio 2005\projects\project\project\floatwndthread.cpp(12) : error C2084: 函数“CRuntimeClass *CFloatWndThread::_GetBaseClass(void)”已有主体 1> d:\我的文档\visual studio 2005\projects\project\project\floatwndthread.h(10) : 参见“_GetBaseClass”的前一个定义 1>d:\我的文档\visual studio 2005\projects\project\project\floatwndthread.cpp(12) : error C2374: “classCFloatWndThread”: 重定义;多次初始化 1> d:\我的文档\visual studio 2005\projects\project\project\floatwndthread.h(10) : 参见“classCFloatWndThread”的声明 1>d:\我的文档\visual studio 2005\projects\project\project\floatwndthread.cpp(12) : error C2084: 函数“CRuntimeClass *CFloatWndThread::GetThisClass(void)”已有主体 1> d:\我的文档\visual studio 2005\projects\project\project\floatwndthread.h(10) : 参见“GetThisClass”的前一个定义 1>d:\我的文档\visual studio 2005\projects\project\project\floatwndthread.cpp(12) : error C2084: 函数“CRuntimeClass *CFloatWndThread::GetRuntimeClass(void) const”已有主体 1> d:\我的文档\visual studio 2005\projects\project\project\floatwndthread.h(10) : 参见“GetRuntimeClass”的前一个定义 1>d:\我的文档\visual studio 2005\projects\project\project\floatwndthread.cpp(15) : error C2084: 函数“CFloatWndThread::CFloatWndThread(void)”已有主体 1> d:\我的文档\visual studio 2005\projects\project\project\floatwndthread.h(18) : 参见“{ctor}”的前一个定义 1>d:\我的文档\visual studio 2005\projects\project\project\floatwndthread.cpp(19) : error C2084: 函数“CFloatWndThread::~CFloatWndThread(void)”已有主体 1> d:\我的文档\visual studio 2005\projects\project\project\floatwndthread.h(15) : 参见“{dtor}”的前一个定义 1>d:\我的文档\visual studio 2005\projects\project\project\floatwndthread.cpp(23) : error C2084: 函数“BOOL CFloatWndThread::InitInstance(void)”已有主体 1> d:\我的文档\visual studio 2005\projects\project\project\floatwndthread.h(19) : 参见“InitInstance”的前一个定义 1>d:\我的文档\visual studio 2005\projects\project\project\floatwndthread.cpp(44) : error C2084: 函数“int CFloatWndThread::ExitInstance(void)”已有主体 1> d:\我的文档\visual studio 2005\projects\project\project\floatwndthread.h(20) : 参见“ExitInstance”的前一个定义 1>d:\我的文档\visual studio 2005\projects\project\project\floatwndthread.cpp(50) : error C2084: 函数“const AFX_MSGMAP *CFloatWndThread::GetMessageMap(void) const”已有主体 1> d:\我的文档\visual studio 2005\projects\project\project\floatwndthread.h(23) : 参见“GetMessageMap”的前一个定义 1>d:\我的文档\visual studio 2005\projects\project\project\floatwndthread.cpp(50) : error C2084: 函数“const AFX_MSGMAP *CFloatWndThread::GetThisMessageMap(void)”已有主体 1> d:\我的文档\visual studio 2005\projects\project\project\floatwndthread.h(23) : 参见“GetThisMessageMap”的前一个定义 1>d:\我的文档\visual studio 2005\projects\project\project\floatwndthread.cpp(55) : fatal error C1020: 意外的 #endif ​

c++函数返回值是数组问题

比如现在要求定义一个函数fun(),在主函数调用时直接用fun();就能输出在fun函数里定义好的一个字符串,那要fun函数的返回值怎么返回才行,为什么我返回指针但打印出来却不是正确结果?求大神解释

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

人工智能-计算机视觉实战之路(必备算法+深度学习+项目实战)

系列课程主要分为3大阶段:(1)首先掌握计算机视觉必备算法原理,结合Opencv进行学习与练手,通过实际视项目进行案例应用展示。(2)进军当下最火的深度学习进行视觉任务实战,掌握深度学习中必备算法原理与网络模型架构。(3)结合经典深度学习框架与实战项目进行实战,基于真实数据集展开业务分析与建模实战。整体风格通俗易懂,项目驱动学习与就业面试。 建议同学们按照下列顺序来进行学习:1.Python入门视频课程 2.Opencv计算机视觉实战(Python版) 3.深度学习框架-PyTorch实战/人工智能框架实战精讲:Keras项目 4.Python-深度学习-物体检测实战 5.后续实战课程按照自己喜好选择就可以

linux2.6.1内核源码注释

包含LINUX内核同步、信号、内存、调度、文件系统、网络系统、时钟等部分的源码注释。前后历时三年,算是干货。

Python可以这样学(第四季:数据分析与科学计算可视化)

董付国老师系列教材《Python程序设计(第2版)》(ISBN:9787302436515)、《Python可以这样学》(ISBN:9787302456469)配套视频,在教材基础上又增加了大量内容,通过实例讲解numpy、scipy、pandas、statistics、matplotlib等标准库和扩展库用法。

u-boot-2015.07.tar.bz2

uboot-2015-07最新代码,喜欢的朋友请拿去

Vue.js 2.0之全家桶系列视频课程

基于新的Vue.js 2.3版本, 目前新全的Vue.js教学视频,让你少走弯路,直达技术前沿! 1. 包含Vue.js全家桶(vue.js、vue-router、axios、vuex、vue-cli、webpack、ElementUI等) 2. 采用笔记+代码案例的形式讲解,通俗易懂

MySQL 8.0.19安装教程(windows 64位)

话不多说直接开干 目录 1-先去官网下载点击的MySQL的下载​ 2-配置初始化的my.ini文件的文件 3-初始化MySQL 4-安装MySQL服务 + 启动MySQL 服务 5-连接MySQL + 修改密码 先去官网下载点击的MySQL的下载 下载完成后解压 解压完是这个样子 配置初始化的my.ini文件的文件 ...

零基础学C#编程—C#从小白到大咖

本课程从初学者角度出发,提供了C#从入门到成为程序开发高手所需要掌握的各方面知识和技术。 【课程特点】 1 由浅入深,编排合理; 2 视频讲解,精彩详尽; 3 丰富实例,轻松易学; 4 每章总结配有难点解析文档。 15大章节,228课时,1756分钟与你一同进步!

微信公众平台开发入门

本套课程的设计完全是为初学者量身打造,课程内容由浅入深,课程讲解通俗易懂,代码实现简洁清晰。通过本课程的学习,学员能够入门微信公众平台开发,能够胜任企业级的订阅号、服务号、企业号的应用开发工作。 通过本课程的学习,学员能够对微信公众平台有一个清晰的、系统性的认识。例如,公众号是什么,它有什么特点,它能做什么,怎么开发公众号。 其次,通过本课程的学习,学员能够掌握微信公众平台开发的方法、技术和应用实现。例如,开发者文档怎么看,开发环境怎么搭建,基本的消息交互如何实现,常用的方法技巧有哪些,真实应用怎么开发。

java jdk 8 帮助文档 中文 文档 chm 谷歌翻译

JDK1.8 API 中文谷歌翻译版 java帮助文档 JDK API java 帮助文档 谷歌翻译 JDK1.8 API 中文 谷歌翻译版 java帮助文档 Java最新帮助文档 本帮助文档是使用谷

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

编程实现学生基本信息管理程序

编程实现学生基本信息管理程序。学生基本信息包括:学号、姓名、性别、年龄、班级、学院、专业等。具体实现的管理功能如下: (1) 输入并显示多个学生的基本信息; (2) 可根据需要实现学生信息的添加; (

机器学习实战系列套餐(必备基础+经典算法+案例实战)

机器学习实战系列套餐以实战为出发点,帮助同学们快速掌握机器学习领域必备经典算法原理并结合Python工具包进行实战应用。建议学习顺序:1.Python必备工具包:掌握实战工具 2.机器学习算法与实战应用:数学原理与应用方法都是必备技能 3.数据挖掘实战:通过真实数据集进行项目实战。按照下列课程顺序学习即可! 课程风格通俗易懂,用最接地气的方式带领大家轻松进军机器学习!提供所有课程代码,PPT与实战数据,有任何问题欢迎随时与我讨论。

YOLOv3目标检测实战:训练自己的数据集

YOLOv3是一种基于深度学习的端到端实时目标检测方法,以速度快见长。本课程将手把手地教大家使用labelImg标注和使用YOLOv3训练自己的数据集。课程分为三个小项目:足球目标检测(单目标检测)、梅西目标检测(单目标检测)、足球和梅西同时目标检测(两目标检测)。 本课程的YOLOv3使用Darknet,在Ubuntu系统上做项目演示。包括:安装Darknet、给自己的数据集打标签、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计(mAP计算和画出PR曲线)和先验框聚类。 Darknet是使用C语言实现的轻型开源深度学习框架,依赖少,可移植性好,值得深入探究。 除本课程《YOLOv3目标检测实战:训练自己的数据集》外,本人推出了有关YOLOv3目标检测的系列课程,请持续关注该系列的其它课程视频,包括: 《YOLOv3目标检测实战:交通标志识别》 《YOLOv3目标检测:原理与源码解析》 《YOLOv3目标检测:网络模型改进方法》 敬请关注并选择学习!

Python+OpenCV计算机视觉

Python+OpenCV计算机视觉系统全面的介绍。

土豆浏览器

土豆浏览器可以用来看各种搞笑、电影、电视剧视频

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

玩转Linux:常用命令实例指南

人工智能、物联网、大数据时代,Linux正有着一统天下的趋势,几乎每个程序员岗位,都要求掌握Linux。本课程零基础也能轻松入门。 本课程以简洁易懂的语言手把手教你系统掌握日常所需的Linux知识,每个知识点都会配合案例实战让你融汇贯通。课程通俗易懂,简洁流畅,适合0基础以及对Linux掌握不熟练的人学习; 【限时福利】 1)购课后按提示添加小助手,进答疑群,还可获得价值300元的编程大礼包! 2)本月购买此套餐加入老师答疑交流群,可参加老师的免费分享活动,学习最新技术项目经验。 --------------------------------------------------------------- 29元=掌握Linux必修知识+社群答疑+讲师社群分享会+700元编程礼包。 &nbsp;

基于STM32的电子时钟设计

时钟功能 还有闹钟功能,温湿度功能,整点报时功能 你值得拥有

Python数据清洗实战入门

本次课程主要以真实的电商数据为基础,通过Python详细的介绍了数据分析中的数据清洗阶段各种技巧和方法。

Git 实用技巧

这几年越来越多的开发团队使用了Git,掌握Git的使用已经越来越重要,已经是一个开发者必备的一项技能;但很多人在刚开始学习Git的时候会遇到很多疑问,比如之前使用过SVN的开发者想不通Git提交代码为什么需要先commit然后再去push,而不是一条命令一次性搞定; 更多的开发者对Git已经入门,不过在遇到一些代码冲突、需要恢复Git代码时候就不知所措,这个时候哪些对 Git掌握得比较好的少数人,就像团队中的神一样,在队友遇到 Git 相关的问题的时候用各种流利的操作来帮助队友于水火。 我去年刚加入新团队,发现一些同事对Git的常规操作没太大问题,但对Git的理解还是比较生疏,比如说分支和分支之间的关联关系、合并代码时候的冲突解决、提交代码前未拉取新代码导致冲突问题的处理等,我在协助处理这些问题的时候也记录各种问题的解决办法,希望整理后通过教程帮助到更多对Git操作进阶的开发者。 本期教程学习方法分为“掌握基础——稳步进阶——熟悉协作”三个层次。从掌握基础的 Git的推送和拉取开始,以案例进行演示,分析每一个步骤的操作方式和原理,从理解Git 工具的操作到学会代码存储结构、演示不同场景下Git遇到问题的不同处理方案。循序渐进让同学们掌握Git工具在团队协作中的整体协作流程。 在教程中会通过大量案例进行分析,案例会模拟在工作中遇到的问题,从最基础的代码提交和拉取、代码冲突解决、代码仓库的数据维护、Git服务端搭建等。为了让同学们容易理解,对Git简单易懂,文章中详细记录了详细的操作步骤,提供大量演示截图和解析。在教程的最后部分,会从提升团队整体效率的角度对Git工具进行讲解,包括规范操作、Gitlab的搭建、钩子事件的应用等。 为了让同学们可以利用碎片化时间来灵活学习,在教程文章中大程度降低了上下文的依赖,让大家可以在工作之余进行学习与实战,并同时掌握里面涉及的Git不常见操作的相关知识,理解Git工具在工作遇到的问题解决思路和方法,相信一定会对大家的前端技能进阶大有帮助。

计算机组成原理算法实现

计算机组成原理算法实现,能够实现定点小数的机器数表示、定点小数的变形补码加减运算、定点小数的原码一位乘法运算和浮点数的加减运算。

为linux系统设计一个简单的二级文件系统

实验目的: 通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及内部实现。 实验要求: 为linux系统设计一个简单的二级文件系统。要求做到以下几点: (1)可以实现下列几条命令(至少4条)

几率大的Redis面试题(含答案)

本文的面试题如下: Redis 持久化机制 缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题 热点数据和冷数据是什么 Memcache与Redis的区别都有哪些? 单线程的redis为什么这么快 redis的数据类型,以及每种数据类型的使用场景,Redis 内部结构 redis的过期策略以及内存淘汰机制【~】 Redis 为什么是单线程的,优点 如何解决redis的并发竞争key问题 Red...

机器学习初学者必会的案例精讲

通过六个实际的编码项目,带领同学入门人工智能。这些项目涉及机器学习(回归,分类,聚类),深度学习(神经网络),底层数学算法,Weka数据挖掘,利用Git开源项目实战等。

网络工程师小白入门--【思科CCNA、华为HCNA等网络工程师认证】

本课程适合CCNA或HCNA网络小白同志,高手请绕道,可以直接学习进价课程。通过本预科课程的学习,为学习网络工程师、思科CCNA、华为HCNA这些认证打下坚实的基础! 重要!思科认证2020年2月24日起,已启用新版认证和考试,包括题库都会更新,由于疫情原因,请关注官网和本地考点信息。题库网络上很容易下载到。

2019全国大学生数学建模竞赛C题原版优秀论文

2019全国大学生数学建模竞赛C题原版优秀论文,PDF原版论文,不是图片合成的,是可编辑的文字版。共三篇。 C044.pdf C137.pdf C308.pdf

土豆SDK(Java版)-非官方

由于土豆SDK一直建设中,最近几天抽空写了一套java的SDK。包含了现有的所有请求协议。本套SDK中仅提供了oAuth的方式(引用oAuth.net的java版示例),并没有在框架中实现,涉及到登录

Android小项目——新闻APP(源码)

Android小项目——新闻APP(源码),一个很简单的可以练手的Android Demo Ps:下载之前可以先看一下这篇文章——https://blog.csdn.net/qq_34149526/a

实用主义学Python(小白也容易上手的Python实用案例)

原价169,限时立减100元! 系统掌握Python核心语法16点,轻松应对工作中80%以上的Python使用场景! 69元=72讲+源码+社群答疑+讲师社群分享会&nbsp; 【哪些人适合学习这门课程?】 1)大学生,平时只学习了Python理论,并未接触Python实战问题; 2)对Python实用技能掌握薄弱的人,自动化、爬虫、数据分析能让你快速提高工作效率; 3)想学习新技术,如:人工智能、机器学习、深度学习等,这门课程是你的必修课程; 4)想修炼更好的编程内功,优秀的工程师肯定不能只会一门语言,Python语言功能强大、使用高效、简单易学。 【超实用技能】 从零开始 自动生成工作周报 职场升级 豆瓣电影数据爬取 实用案例 奥运冠军数据分析 自动化办公:通过Python自动化分析Excel数据并自动操作Word文档,最终获得一份基于Excel表格的数据分析报告。 豆瓣电影爬虫:通过Python自动爬取豆瓣电影信息并将电影图片保存到本地。 奥运会数据分析实战 简介:通过Python分析120年间奥运会的数据,从不同角度入手分析,从而得出一些有趣的结论。 【超人气老师】 二两 中国人工智能协会高级会员 生成对抗神经网络研究者 《深入浅出生成对抗网络:原理剖析与TensorFlow实现》一书作者 阿里云大学云学院导师 前大型游戏公司后端工程师 【超丰富实用案例】 0)图片背景去除案例 1)自动生成工作周报案例 2)豆瓣电影数据爬取案例 3)奥运会数据分析案例 4)自动处理邮件案例 5)github信息爬取/更新提醒案例 6)B站百大UP信息爬取与分析案例 7)构建自己的论文网站案例

相关热词 c# 开发接口 c# 中方法上面的限制 c# java 时间戳 c#单元测试入门 c# 数组转化成文本 c#实体类主外键关系设置 c# 子函数 局部 c#窗口位置设置 c# list 查询 c# 事件 执行顺序
立即提问
相关内容推荐