'typedef ' : ignored on left of 'class CStringList' when no variable is declared

//CListTest.cpp:Define the entry point for the console application
//#include"stdafx.h"
#include
#include
#include

using namespace std;

typedef CStringListStringList;
//实现一个以String为元素的数组类
//入参和出参都是一个指向string的指针
int main()//(int argc,_TCHAR* argv[])
{
const CString str[]={
_T("1st Score"),
_T("2nd Score"),
_T("3rd Score"),
_T("4th Score"),
};
CStringList list1;
size_t i=0;
//从链表头部向链表中添加记录
for(i=0;i<sizeof(str)/sizeof(CString);i++)
{
list1.AddHead(str[i]);
}

CString string;
while(!list1.IsEmpty())
{
string=list1.RemoveHead();
wcout<<LPCTSTR(string)<<endl;
//最好每次清空string
string.ReleaseBuffer();
}
cout<<endl;
return 0;
}
//程序代码如上,本来预计应输出:
/*4th Score
3rd Score
2nd Score
1st Score*/
// 但却显示错误为:
//D:\Visual C++ Project\CList_P96\CList.cpp(9) : warning C4091: 'typedef ' : ignored on left of 'class CStringList' when no variable is declared
//D:\Visual C++ Project\CList_P96\CList.cpp(9) : error C2143: syntax error : missing ';' before '<'
//D:\Visual C++ Project\CList_P96\CList.cpp(9) : error C2143: syntax error : missing ';' before '<'

2个回答

你是不是没有添加对mfc的支持

我这里编译正常(唯一的修改typedef CStringList StringList;少空格,不知道是你没有写还是csdn的bug)

图片说明

还有,下次贴代码,请使用编辑器上</>的按钮格式化下,你这么贴代码不完整你没有发现么?

问题如果解决,请点我回答右边的采纳,谢谢

您所说的对MFC支持是怎么添加呢?我用的VC++6.0,直接创建的源程序然后编译的,没有添加MFC支持。(编程小白)还请指教

weixin_43409736
weixin_43409736 谢谢大神,已经解决
一年多之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 新建控制台程序里,有一步是可以勾选mfc支持的,你找找。
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
error C2632: 'char' followed by 'char' is illegal

把原来的C文件中的函数封装成一个类成员函数,在.h头文件中。运行就提示一些错误,不知道怎么解决。 >c:\program files\microsoft sdks\windows\v7.0a\include\windef.h(154): error C2632: 'char' followed by 'char' is illegal 3>c:\program files\microsoft sdks\windows\v7.0a\include\windef.h(154): warning C4091: 'typedef ' : ignored on left of 'unsigned char' when no variable is declared 3>c:\program files\microsoft sdks\windows\v7.0a\include\windef.h(155): warning C4114: same type qualifier used more than once 3>c:\program files\microsoft sdks\windows\v7.0a\include\windef.h(155): error C2632: 'short' followed by 'short' is illegal 3>c:\program files\microsoft sdks\windows\v7.0a\include\windef.h(155): warning C4091: 'typedef ' : ignored on left of 'unsigned short' when no variable is declared 3>c:\program files\microsoft sdks\windows\v7.0a\include\windef.h(172): error C2632: 'int' followed by 'int' is illegal 3>c:\program files\microsoft sdks\windows\v7.0a\include\windef.h(172): warning C4091: 'typedef ' : ignored on left of 'int' when no variable is declared 3>c:\program files\microsoft sdks\windows\v7.0a\include\winnt.h(331): error C2632: 'char' followed by 'char' is illegal windef.h中的定义 typedef unsigned long DWORD; typedef int BOOL; typedef unsigned char BYTE;

[Warning] 'typedef' was ignored in this declaration 请问这个怎么解决?

![图片说明](https://img-ask.csdn.net/upload/202004/16/1587022941_719802.png)

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)>" 的适当构造函数` 请问这是为什么啊~

typedef fastdelegate::FastDelegate0<> MemberProc;

typedef fastdelegate::FastDelegate0<> MemberProc; 请问上面这句代码,应该如何理解?

typedef vector的问题怎么解决

vector<class ho>iterator hji 怎么使用typedef求答案求代码用这一串的的时候不用多写代码

typedef 和 类模板 的问题

这是我使用类模板定义的一个类 LNode template<typename ElemType> class LNode { public: ElemType date; LNode *next; }; 我想对 *LNode 进行重命名操作 typedef LNode<int> *LinkList; 用int没有问题 但是我想对所有所有类型都重命名为LinkList,就会编译失败 template<typename ElemType> typedef LNode<ElemType> *LinkList;//编译失败 请教 需要怎么修改

模板与typedef结合的问题

![图片说明](https://img-ask.csdn.net/upload/201901/18/1547779987_528382.png) 图中划线 typedef R (C::*Method)()怎么理解

Raspberry Pi的GO-GTK交叉编译

<div class="post-text" itemprop="text"> <p>I am using GO-GTK to display images, the project is working fine on amd64 but when I try to cross compile it for arm (RaspberryPi), it gives me below error. Please advise how to cross-compile go-gtk from amd64 to arm (Raspberrypi3).</p> <p>Compiler Output given below</p> <pre><code> github.com/mattn/go-gtk/glib # github.com/mattn/go-gtk/glib In file included from /usr/lib/x86_64-linux-gnu/glib-2.0/include/glibconfig.h:9:0, from /usr/include/glib-2.0/glib/gtypes.h:32, from /usr/include/glib-2.0/glib/galloca.h:32, from /usr/include/glib-2.0/glib.h:30, from ./glib.go.h:4, from src/github.com/mattn/go-gtk/glib/glib.go:5: /usr/include/glib-2.0/glib/gtypes.h: In function '_GLIB_CHECKED_ADD_U64': /usr/include/glib-2.0/glib/gmacros.h:232:53: error: size of array '_GStaticAssertCompileTimeAssertion_0' is negative #define G_STATIC_ASSERT(expr) typedef char G_PASTE (_GStaticAssertCompileTimeAssertion_, __COUNTER__)[(expr) ? 1 : -1] G_GNUC_UNUSED ^ /usr/include/glib-2.0/glib/gmacros.h:229:47: note: in definition of macro 'G_PASTE_ARGS' #define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2 ^ /usr/include/glib-2.0/glib/gmacros.h:232:44: note: in expansion of macro 'G_PASTE' #define G_STATIC_ASSERT(expr) typedef char G_PASTE (_GStaticAssertCompileTimeAssertion_, __COUNTER__)[(expr) ? 1 : -1] G_GNUC_UNUSED ^ /usr/include/glib-2.0/glib/gtypes.h:422:3: note: in expansion of macro 'G_STATIC_ASSERT' G_STATIC_ASSERT(sizeof (unsigned long long) == sizeof (guint64)); ^ github.com/mattn/go-gtk/pango # github.com/mattn/go-gtk/pango In file included from /usr/lib/x86_64-linux-gnu/glib-2.0/include/glibconfig.h:9:0, from /usr/include/glib-2.0/glib/gtypes.h:32, from /usr/include/glib-2.0/glib/galloca.h:32, from /usr/include/glib-2.0/glib.h:30, from /usr/include/pango-1.0/pango/pango-coverage.h:25, from /usr/include/pango-1.0/pango/pango-font.h:25, from /usr/include/pango-1.0/pango/pango-attributes.h:25, from /usr/include/pango-1.0/pango/pango.h:25, from ./pango.go.h:7, from src/github.com/mattn/go-gtk/pango/pango.go:5: /usr/include/glib-2.0/glib/gtypes.h: In function '_GLIB_CHECKED_ADD_U64': /usr/include/glib-2.0/glib/gmacros.h:232:53: error: size of array '_GStaticAssertCompileTimeAssertion_0' is negative #define G_STATIC_ASSERT(expr) typedef char G_PASTE (_GStaticAssertCompileTimeAssertion_, __COUNTER__)[(expr) ? 1 : -1] G_GNUC_UNUSED ^ /usr/include/glib-2.0/glib/gmacros.h:229:47: note: in definition of macro 'G_PASTE_ARGS' #define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2 ^ /usr/include/glib-2.0/glib/gmacros.h:232:44: note: in expansion of macro 'G_PASTE' #define G_STATIC_ASSERT(expr) typedef char G_PASTE (_GStaticAssertCompileTimeAssertion_, __COUNTER__)[(expr) ? 1 : -1] G_GNUC_UNUSED ^ /usr/include/glib-2.0/glib/gtypes.h:422:3: note: in expansion of macro 'G_STATIC_ASSERT' G_STATIC_ASSERT(sizeof (unsigned long long) == sizeof (guint64)); </code></pre> <p><strong>ENVIRONMENT VARIABLES</strong></p> <pre><code> GOARCH="arm" GOBIN="" GOEXE="" GOHOSTARCH="amd64" GOHOSTOS="linux" GOOS="linux" GOPATH="/home/minhaj/GoLang" GORACE="" GOROOT="/usr/local/go" GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64" GCCGO="gccgo" GOARM="" CC="arm-linux-gnueabi-gcc" GOGCCFLAGS="-fPIC -marm -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build977266484=/tmp/go-build -gno-record-gcc-switches" CXX="g++" CGO_ENABLED="1" PKG_CONFIG="pkg-config" CGO_CFLAGS="-g -O2" CGO_CPPFLAGS="" CGO_CXXFLAGS="-g -O2" CGO_FFLAGS="-g -O2" CGO_LDFLAGS="-g -O2" </code></pre> </div>

什么是 Objective-C 中的 typedef enum?

<div class="post-text" itemprop="text"> <p>I don't think I fundamentally understand what an <code>enum</code> is, and when to use it. </p> <p>For example:</p> <pre><code>typedef enum { kCircle, kRectangle, kOblateSpheroid } ShapeType; </code></pre> <p>What is really being declared here?</p> </div> <p>转载于:https://stackoverflow.com/questions/707512/what-is-a-typedef-enum-in-objective-c</p>

C++ 小白有一条语句不明白 求各位大佬帮个忙

inline bool compare(const Sales_item& lhs, const Sales_item& rhs) { return lhs->book() < rhs->book(); } class Basket { typedef bool (*Comp)(const Sales_item&, const Sales_item&); public: typedef multiset<Sales_item, Comp>set_type; typedef set_type::size_type size_type; typedef set_type::const_iterator const_iter; ///默认构造函数,将比較函数确定为compare Basket():items(compare){} ///不懂呢 ------这里这里这里------- void add_item(const Sales_item &item) { items.insert(item); } size_type size(const Sales_item & item)const { return items.count(item); } double total()const; private: multiset <Sales_item, Comp> items; }; ××××××××××××××××××××××××××××× Basket():items(compare){} 这里compare换成*Comp为什么不对呢

Typedef struct 对 struct 定义[重复]

<div class="post-text" itemprop="text"> <div class="question-status question-originals-of-duplicate"> <p>This question already has an answer here:</p> <ul> <li> <a href="/questions/252780/why-should-we-typedef-a-struct-so-often-in-c" dir="ltr">Why should we typedef a struct so often in C?</a> <span class="question-originals-answer-count"> 15 answers </span> </li> </ul> </div> <p>I'm a beginner in C programming, but I was wondering what's the difference between using typedef when defining a structure versus not using typedef. It seems to me like there's really no difference, they accomplish the same.</p> <pre><code>struct myStruct{ int one; int two; }; </code></pre> <p>vs.</p> <pre><code>typedef struct{ int one; int two; }myStruct; </code></pre> </div> <p>转载于:https://stackoverflow.com/questions/1675351/typedef-struct-vs-struct-definitions</p>

boost C++library 如何将需要的坐标全部加入到polygon内

``` #include <iostream> #include <boost/geometry.hpp> #include <boost/geometry/geometries/point_xy.hpp> #include <boost/geometry/geometries/box.hpp> #include <boost/geometry/geometries/polygon.hpp> #include <boost/assign/list_of.hpp> #include <string> namespace bg = boost::geometry; int main() { std::string a = "(0, 0)(0, 3)(3, 3)(0, 0)"; typedef bg::model::d2::point_xy<double> point; typedef bg::model::box<point> box; typedef bg::model::polygon<point> polygon; // // box // { // const box x(point(0, 0), point(3, 3)); // // const double result = bg::area(x); // std::cout << result << std::endl; // } // polygon polygon x; bg::exterior_ring(x) = boost::assign::list_of<point>a; const double result = bg::area(x); std::cout << result << std::endl; } ```

fatal error C1004: unexpected end of file found为什么会出现这样的情况?是哪里出错了吗?

#include <stdio.h> #include <stdlib.h> #include <string.h> #define MAXSIZE 20 typedef struct movie { int id; char name[30]; char director[30]; char lang[30]; int year; float point; char name2[10]; struct movie *next; } movie; movie *first, *last; typedef struct SqList { char classification[MAXSIZE][20]; int length; } SqList; SqList *L; void InitList() { { L=(SqList *)malloc(sizeof(SqList)); L->length=0; } int n; printf("请输入创建电影分类的个数:\n"); scanf("%d",&n); for(int i=0;i<n;i++) { printf("请输入电影分类\n"); scanf("%s",L->classification[i]); L->length++; } printf("------完成------\n"); } int IsExistsList(char *classification) { for(int i=0;i<L->length;i++) { if(strcmp(L->classification[i],classification)==0) { return 1; } } return 0; } movie *createList() { movie *node =(movie *)malloc(sizeof(movie)); if (node==NULL) { printf("-------创建失败------\n."); return NULL; } node->next=NULL; printf("请输入电影名称:\n"); scanf("%s",&node->name); printf("请输入导演:\n"); scanf("%s",&node->director); printf("请输入语言:\n"); scanf("%s",&node->lang); printf("请输入年份:\n"); scanf("%d",&node->year); printf("请输入评分:\n"); scanf("%f",&node->point); printf("请输入电影分类:\n"); scanf("%s",&node->name2); while(IsExistsList(node->name2)!=1) { printf("---没有找到电影分类,请重新输入电影分类---\n"); scanf("%s",&node->name2); } printf("----完成----\n"); return node; } void displayList() { if(first->next==NULL) { printf("暂无数据\n"); return; } movie *p; for (p=first->next; p!=NULL; p=p->next) { printf("编号:%d,电影名称:%s,导演:%s,语言:%s,年份:%d,评分:%f,分类:%s\n",p->id,p->name,p->director,p->lang,p->year,p->point,p->name2); } } void removeList() { if(first->next==NULL) { printf("\n暂无数据\n\n"); return; } int input; printf("请输入删除的编号(数字)\n"); scanf("%d",&input); movie *p , *tempLast; tempLast = first; for (p=first->next; p!=NULL; p=p->next) { if (p->id==input) { if(last==p) { last=NULL; } tempLast->next=p->next; free(p); printf("删除成功\n"); return; } else { tempLast = p; } } printf("该编号不存在\n"); } void modifyList() { if(first->next==NULL) { printf("\n暂无数据\n\n"); return; } printf("请输入修改的编号\n"); int input; scanf("%d",&input); movie *p; for (p=first->next; p!=NULL; p=p->next) { if (p->id==input) { printf("找到电影 编号:%d,电影名称:%s,导演:%s,语言:%s,年份:%d,评分:%f,分类:%s\n",p->id,p->name,p->director,p->lang,p->year,p->point,p->name2); printf("请输入新评分\n"); scanf("%f",&p->point); printf("修改完成\n\n"); return; } } printf("该编号不存在\n"); } void MovieLast() { movie *node= createList(); if(last==NULL) { node->id=1; first->next=node; } else { node->id=last->id+1; last->next=node; } last=node; printf("------添加成功-------\n"); } void createMovieList() { while (true) { MovieLast(); printf("是否继续创建电影(1 继续 0 返回) \n"); int num; scanf("%d",&num); if(num==0) { break; } } } void queryList() { if(first->next==NULL) { printf("\n暂无数据\n\n"); return; } printf("请输入电影名称\n"); char input[10]; scanf("%s",input); movie *p; for (p=first->next; p!=NULL; p=p->next) { if (strcmp( p->name,input)==0) { printf("查询到电影 编号:%d,电影名称:%s,导演姓名:%s,语言:%s,年份:%d,评分:%f,电影分类:%s\n",p->id,p->name,p->director,p->lang,p->year,p->point,p->name2); return; } printf("未查询到结果!\n"); } } void BubbleSort() { movie *p,*q; p=first->next; float s; if(first->next==NULL) { printf("\n暂无数据\n\n"); return; } for (p=first->next; p!=NULL; p=p->next) { for(q=p->next;q!=NULL;q=q->next) { if((p->point)>(q->point)) { s=q->point; q->point=p->point; p->point=s; } } printf("分数: %lf \n",p->point); } } void showMenu() { int num; while(num!=3) { printf("1. 管理员登录\n"); printf("2. 用户入口\n"); printf("3. 退出系统\n"); printf("请输入(1,2,3)来选择功能 \n"); scanf("%d",&num); } switch(num) { case 1: { int i; char a[20]={"syy"},b[20],c[20]={"0531"}; while(1) { printf("输入管理员账号\n"); scanf("%s",a); if(strcmp(b,c)==0) printf("账号错误再次输入\n"); else break; } while(1) { printf("输入密码\n"); scanf("%s",c); if(strcmp(a,c)==0) printf("密码错误请重新输入\n"); else break; } do { int num; { printf("1. 录入电影分类\n"); printf("2. 录入电影信息\n"); printf("3. 创建电影\n"); printf("4. 删除电影\n"); printf("5. 修改电影\n"); printf("6. 查看所有电影\n"); printf("7. 返回\n"); printf("请选择功能 \n"); scanf("%d",&num); } switch(num) { case 1: InitList(); break; case 2: createList(); break; case 3: MovieLast(); break; case 4: removeList(); break; case 5: modifyList(); break; case 6: displayList(); break; default: showMenu(); break; } }while(1); } case 2: { int num; while(num!=3) { printf("1. 查看所有电影\n"); printf("2. 按评分升序排序\n"); printf("3. 返回主界面\n"); printf("请选择功能 \n"); scanf("%d",&num); } switch(num) { case 1: queryList(); break; case 2: BubbleSort(); break; default: break; } } default: break; }

C语言中typedef语句及传参问题

我声明了一个结构体: struct tree_node{ char id; struct tree_node *left; struct tree_node *right; }; typedef struct tree_node TreeNode; typedef struct tree_node *Tree; 创建树的函数 int Create_pro(Tree t); 可是通过对比发现,别人的传参是Tree *t,别人的函数void CreateTree(Tree *T) 我认为Tree t = tree_node *t是成立的,那么就可以使用Create_pro(&t); 还有个问题: typedef struct node{}tree; typedef struct node{}*tree; 在mian里Tree t;一个是结构体类型 一个是结构体指针类型 我的想法有问题么?

fatal error C1004: unexpected end of file found

#include<stdio.h> #include<math.h> #include <process.h> #define N 100 #define n 5 #define m 5 #define w 5 typedef struct { int itemnum; int top; int range[N]; int mark[N]; }itemnode; itemnode t[N]; struct head { itemnode t[N]; int schoolnum; int score; int menscore; int womenscore; }headnode h[N]; void input() { int i,j,k,s; for(i=0;i<n;i++) { h[i].womenscore=0; h[i].menscore=0; } for(i=0;i<n;i++) { printf("学校编号:"); scanf("%d",&h[i].schoolnum); for(j=0;j<m+w;j++) { printf("项目编号:"); scanf("%d",&h[i].t[j].itemnum); printf("取名次的数目:"); scanf("%d",&h[i].t[j].top); printf("取得的名次:"); scanf("%d",&k); for(s=0;s<5;s++) { printf("名次为:"); scanf("%d",&h[i].t[j].range[s]); if(h[i].s[j].top==3) switch(h[i].t[j].range[s]) { case 1:h[i].t[j].mark[s]=5;break; case 2:h[i].t[j].mark[s]=3;break; case 3:h[i].t[j].mark[s]=2;break; } else switch(h[i].t[j].Range[s]) { case 1:h[i].t[j].mark[s]=7;break; case 2:h[i].t[j].mark[s]=5;break; case 3:h[i].t[j].mark[s]=3;break; case 4:h[i].t[j].mark[s]=2;break; case 5:h[i].t[j].mark[s]=1;break; } h[i].score=h[i].score+h[i].t[j].mark[s]; if(j<=m) h[i].menscore=h[i].menscore+h[i].t[j].mark[s]; else h[i].womenscore=h[i].womenscore+h[i].t[j].mark[s]; } } } } void output() { int chioce,i,j,temp; for(chioce=1;chioce<5;chioce++) { switch(chioce) { case 1: for(i=0;i<n;i++) { printf("学校编号:%d",h[i].schoolnum); printf("学校总分:%d",h[i].score); printf("男团总分:%d",h[i].menscore); printf("女团总分:%d",h[i].womenscore); } break; case 2: for(i=0;i<n;i++) { for(j=i+1;j<n;j++) { if(h[j].score>h[i].score) temp=h[i].score; h[i].score=h[j].score; h[j].score=temp; } } for(i=0;i<n;i++) { printf("学校编号:%d",h[i].schoolnum); printf("学校总分:%d",h[i].score); printf("男团总分:%d",h[i].menscore); printf("女团总分:%d",h[i].womenscore); } break; case 3: for(i=0;i<n;i++) { for(j=i+1;j<n;j++) { if(h[j].menscore>h[i].menscore) temp=h[i].menscore; h[i].menscore=h[j].menscore; h[j].menscore=temp; } } for(i=0;i<n;i++) { printf("学校编号:%d",h[i].schoolnum); printf("学校总分:%d",h[i].score); printf("男团总分:%d",h[i].menscore); printf("女团总分:%d",h[i].womenscore); } break; case 4: for(i=0;i<n;i++) { for(j=i+1;j<n;j++) { if(h[j].womenscore>h[i].womenscore) temp=h[i].womenscore; h[i].womenscore=h[j].womenscore; h[j].womenscore=temp; } } for(i=0;i<n;i++) { printf("学校编号:%d",h[i].schoolnum); printf("学校总分:%d",h[i].score); printf("男团总分:%d",h[i].menscore); printf("女团总分:%d",h[i].womenscore); } break; } } } void inquiry() { int i,j,k,chioce,p,q; for(chioce=1;chioce<3;chioce++) { switch(chioce) { case 1: printf("按学校编号查询"); printf("要查询的学校编号:"); scanf("%d",&i); if(i<1||i>n) printf("这个学校没有参加此次运动会"); else printf("要查询的项目的编号:"); scanf("%d",&j); if(j<1||j>m+w) printf("此次运动会没有这个项目"); else printf("这个项目取前%d名,成绩如下:",&h[j].top); for(k=0;k<5;k++) { printf("该学校在这个项目的名次为:%d",&h[i].t[j].range[k]); } break; case 2: printf("按项目编号查询"); printf("要查询的项目的编号:"); scanf("%d",&p); if(p<1||p>m+w) printf("此次运动会没有这个项目"); else printf("该项目取前%d名",&h[0].t[p].top); for(i=0;i<n;i++) { for(j=0;j<5;j++) { printf("学校的编号:%d",&h[i].schoolnum); printf("学校名次:%d",&h[i].t[p].range[j]); } } break; } } } void main() { int chioce; for(chioce=0;chioce<4;chioce++) { switch(chioce) { case 0: input(); main(); break; case 1: output(); main(); break; case 2: inquiry(); main(); break; } } } cpp(23) : error C2146: syntax error : missing ';' before identifier 'h' cpp(23) : fatal error C1004: unexpected end of file found 求教大神!!

c++模板类包含typedef 指针函数,vs2012编译错误

```cpp #include "stdafx.h" #include<stdexcept> #ifndef ToozyBinaryTreeHead #define ToozyBinaryTreeHead template <class T> class ToozyBinaryTree{ public: typedef bool (*findFunc)(typename const ToozyBinaryTree<T>::ToozyBinaryTreeNode*,const T*); static const int LEFT = 1; static const int RIGHT = 2; struct ToozyBinaryTreeNode{ ToozyBinaryTreeNode *left; ToozyBinaryTreeNode *right; ToozyBinaryTreeNode *nextNode; T value; ToozyBinaryTreeNode(const T *v){ value = *v; left = nullptr; right = nullptr; nextNode = nullptr; } }; findFunc findFunction; ToozyBinaryTree(ToozyBinaryTreeNode *root); ToozyBinaryTree(T *v); ~ToozyBinaryTree(); const ToozyBinaryTreeNode *find(const T *value) const; const ToozyBinaryTreeNode *add(const ToozyBinaryTreeNode *parent,const T *value,int type); const ToozyBinaryTreeNode *getRoot(); protected: ToozyBinaryTreeNode* _root; ToozyBinaryTreeNode* _lastNode; }; ``` 这样子: typedef bool (*findFunc)(typename const ToozyBinaryTree<T>::ToozyBinaryTreeNode*,const T*); 应该怎么改?

c语言程序编译出错error: syntax error before "typedef"

设计的一个顺序循环队列和测试函数,结果编译的时候就有好多error: syntax error before ""不知道要怎么改,求帮助~ 这是我的代码: 头文件: #include<stdio.h> typedef struct SeqCQueue { DataType queue[MaxQueueSize]; int MaxQueueSize; int rear; int front; }struct SeqCQueue; void QueueInitiate(SeqCQueue *Q) { Q->rear=0; Q->front=0; } int QueueNotEmpty(SeqCQueueQ) { if(rear==front) return 1; else return 0; } int QueueAppend(SeqCQueue*Q,DataType x) { if((rear+1)%MaxQueueSize==front) { printf("队列已满无法插入!\n"); return 0; } else { Q->queue[Q->rear]=x; Q->rear=(Q->rear+1)%MaxQueueSize; return 1; } } int QueueDele(SeqCQueue*Q,DataType*d) { if(rear==front) { printf("队列已空,无数据元素出队列!\n"); return 0; } else { *d=Q->queue[Q->front]; Q->front=(Q->front+1)%MaxQueueSize; return 1; } } int QueueGet(SeqCQueue Q,DataType*d) { if(rear==front) { printf("队列已空,无数据元素可取!\n"); return 0; } else { *d=Q.queue[Q.front]; return 1; } } 测试函数: #include<string.h> #include<stdio.h> typedef struct #include"2.h" int main(void) { typedef struct { int queue[MaxQueueSize]; int rear; int front; }SeqCQueue; void QueueInitiate(SeqCQueue*Q) int QueueNotEmpty(SeqCQueue*Q) int i,x=1; for(i=0;i<10;i++) { QueueAppend(SeqCQueue*Q,DataType x) x++; } QueueGet(SeqCQueue Q,DataType*d) printf("此队列队头元素为%d",*d); for(i=0;i<10;i++) { QueueDele(SeqCQueue*Q,DataType*d) printf("%d",*d); free(d) } }

c++ 偏特化 求解释为什么编译不了?

``` #include <iostream> #include <cstdio> #include <string> using namespace std; #if 0 template< class T> struct iterator_traits { typedef typename T::iterator_category iterator_category; typedef typename T::value_type value_type; typedef typename T::difference_type difference_type;//表示两迭代器之间的距离 typedef typename T::pointer pointer; typedef typename T::reference reference; }; #endif template<class T> class iterator<const T*> { puclic: iterator(){cout<<"ok?"<<endl;} }; int main(void) { iterator< const int*> ok; } ```

在 c + + 11中'typedef'和'using'之间有什么区别?

<div class="post-text" itemprop="text"> <p>I know that in C++11 we can now use <code>using</code> to write type alias, like <code>typedef</code>s:</p> <pre><code>typedef int MyInt; </code></pre> <p>Is, from what I understand, equivalent to:</p> <pre><code>using MyInt = int; </code></pre> <p>And that new syntax emerged from the effort to have a way to express "<code>template typedef</code>":</p> <pre><code>template&lt; class T &gt; using MyType = AnotherType&lt; T, MyAllocatorType &gt;; </code></pre> <p>But, with the first two non-template examples, are there any other subtle differences in the standard? For example, <code>typedef</code>s do aliasing in a "weak" way. That is it does not create a new type but only a new name (conversions are implicit between those names).</p> <p>Is it the same with <code>using</code> or does it generate a new type? Are there any differences?</p> </div> <p>转载于:https://stackoverflow.com/questions/10747810/what-is-the-difference-between-typedef-and-using-in-c11</p>

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

总结了 150 余个神奇网站,你不来瞅瞅吗?

原博客再更新,可能就没了,之后将持续更新本篇博客。

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

外包程序员的幸福生活

今天给你们讲述一个外包程序员的幸福生活。男主是Z哥,不是在外包公司上班的那种,是一名自由职业者,接外包项目自己干。接下来讲的都是真人真事。 先给大家介绍一下男主,Z哥,老程序员,是我十多年前的老同事,技术大牛,当过CTO,也创过业。因为我俩都爱好喝酒、踢球,再加上住的距离不算远,所以一直也断断续续的联系着,我对Z哥的状况也有大概了解。 Z哥几年前创业失败,后来他开始干起了外包,利用自己的技术能...

优雅的替换if-else语句

场景 日常开发,if-else语句写的不少吧??当逻辑分支非常多的时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的很不优雅,尤其是对于我这种有强迫症的程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡的,总想着解锁新姿势:干掉过多的if-else!!!本文将介绍三板斧手段: 优先判断条件,条件不满足的,逻辑及时中断返回; 采用策略模式+工厂模式; 结合注解,锦...

深入剖析Springboot启动原理的底层源码,再也不怕面试官问了!

大家现在应该都对Springboot很熟悉,但是你对他的启动原理了解吗?

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

2020阿里全球数学大赛:3万名高手、4道题、2天2夜未交卷

阿里巴巴全球数学竞赛( Alibaba Global Mathematics Competition)由马云发起,由中国科学技术协会、阿里巴巴基金会、阿里巴巴达摩院共同举办。大赛不设报名门槛,全世界爱好数学的人都可参与,不论是否出身数学专业、是否投身数学研究。 2020年阿里巴巴达摩院邀请北京大学、剑桥大学、浙江大学等高校的顶尖数学教师组建了出题组。中科院院士、美国艺术与科学院院士、北京国际数学...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

你期望月薪4万,出门右拐,不送,这几个点,你也就是个初级的水平

先来看几个问题通过注解的方式注入依赖对象,介绍一下你知道的几种方式@Autowired和@Resource有何区别说一下@Autowired查找候选者的...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

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

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

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

《经典算法案例》01-08:如何使用质数设计扫雷(Minesweeper)游戏

我们都玩过Windows操作系统中的经典游戏扫雷(Minesweeper),如果把质数当作一颗雷,那么,表格中红色的数字哪些是雷(质数)?您能找出多少个呢?文中用列表的方式罗列了10000以内的自然数、质数(素数),6的倍数等,方便大家观察质数的分布规律及特性,以便对算法求解有指导意义。另外,判断质数是初学算法,理解算法重要性的一个非常好的案例。

《Oracle Java SE编程自学与面试指南》最佳学习路线图(2020最新版)

正确选择比瞎努力更重要!

字节跳动面试官竟然问了我JDBC?

轻松等回家通知

面试官:你连SSO都不懂,就别来面试了

大厂竟然要考我SSO,卧槽。

终于,月薪过5万了!

来看几个问题想不想月薪超过5万?想不想进入公司架构组?想不想成为项目组的负责人?想不想成为spring的高手,超越99%的对手?那么本文内容是你必须要掌握的。本文主要详解bean的生命...

自从喜欢上了B站这12个UP主,我越来越觉得自己是个废柴了!

不怕告诉你,我自从喜欢上了这12个UP主,哔哩哔哩成为了我手机上最耗电的软件,几乎每天都会看,可是吧,看的越多,我就越觉得自己是个废柴,唉,老天不公啊,不信你看看…… 间接性踌躇满志,持续性混吃等死,都是因为你们……但是,自己的学习力在慢慢变强,这是不容忽视的,推荐给你们! 都说B站是个宝,可是有人不会挖啊,没事,今天咱挖好的送你一箩筐,首先啊,我在B站上最喜欢看这个家伙的视频了,为啥 ,咱撇...

立即提问
相关内容推荐