رفع warnning در C++ - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

رفع warnning در C++

+1 امتیاز

سلام.

من  به این صورت struct تعریف کردم.

typedef struct Struct1
{
	int a;
	int b;
};

ولی نمی دونم چرا warnning میده میخوام حذفش کنم.

warning C4091: 'typedef ' : ignored on left of 'Struct1' when no variable is declared

ممنون

سوال شده اردیبهشت 2, 1393  بوسیله ی RED (امتیاز 494)   9 30 41

2 پاسخ

+2 امتیاز
 
بهترین پاسخ

سلام .

کلمه ی typedef رو اگه میخوای type های دیگه ای ای همین ساختار داشته باشی باید بزاری .

مثلا :

#include <iostream>
#include <stdlib.h>
#include <string.h>

typedef struct __STRUCT
{
	int x,y,z;
}STRUCT,*PSTRUCT;

using namespace std;
int main ()
{
	STRUCT a;
	PSTRUCT b;

	b = &a;

    return 0;
}

کاربرد دیگش هم توی C هست . چون توی C برای تعریف یک شی از ساختار باید کلمه ی struct رو قبلش بنویسی . با typedef میشه بدون نیاز به نوشتن کلمه ی struct این کار رو کرد :

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

struct STRUCT
{
	int x,y,z;
};

struct STRUCT a;
struct STRUCT*b;

typedef struct STRUCT2
{
	int x,y,z;
}STRUCT2;

STRUCT2 c;
STRUCT2*d;

int main()
{
	b = &a;
	d = &c;
	return 0;
}

 

پاسخ داده شده اردیبهشت 2, 1393 بوسیله ی Ali Rahbar (امتیاز 4,240)   6 16 46
انتخاب شد اردیبهشت 2, 1393 بوسیله ی RED
+1 امتیاز
typedef رو پاک کن چون این راه برای struct در سی بوده توی سی پلاس به طور اتوماتیک این کار انجام میشه و نیاز به typedef نیست
پاسخ داده شده اردیبهشت 2, 1393 بوسیله ی Fire360Boy (امتیاز 2,524)   6 24 43
...