স্ব একটি typedef কোন প্রভাব আছে?

আমি কিছু C ++ কোড জুড়ে এসেছি যা নিম্নোক্ত আছে:

typedef Request Request;

এটি কি শুধু একটি নো-আপ বা এই টাইপফফ প্রকৃত একটি প্রভাব আছে, এবং যদি তাই, এটি কি প্রভাব আছে?

0
এই অনুরোধ </কোড> একটি ম্যাক্রো ছিল যদি কিছু করতে পারে।
যোগ লেখক Mankarse, উৎস
হ্যাঁ, এটি আসলেই টাইপফিগ অনুরোধের অনুরোধ </কোড>, এবং অনুরোধটি ইতিমধ্যেই সংজ্ঞায়িত করা হয়েছে, তবে নিশ্চিত না যে এটি একই নামস্থান বা না।
যোগ লেখক WilliamKF, উৎস
আপনি কি নিশ্চিত নন এটি টাইপফ স্ট্রিপ্ট অনুরোধ অনুরোধ </কোড>?
যোগ লেখক Graham Borland, উৎস
একই কোডে অনুরোধ সংজ্ঞায়িত হয়েছে?
যোগ লেখক K-ballo, উৎস

2 উত্তর

আপনি বিভাগ 7.1.3 এ C ++ 2003 ANSI ISO IEC 14882 2003 এর জন্য typedef স্পেসিফায়ারের সাথে সম্পর্কিত সমস্ত নিয়মগুলি পড়তে পারেন। 7.1.3 তে, ২) বলা হয়েছে যে নামটি যদি ইতিমধ্যেই কিছু প্রকার উল্লেখ করা হয় তবে typedef সনাক্তকরণ অনুমোদিত।

এটি আইনি:

typedef int Request;
typedef Request Request;//Redefines "Request" with no effect 

এবং যে এটা না:

typedef Request Request;//Illegal, first "Request" doesn't name a type. 

মানটি এই সম্পর্কিত একটি নির্দিষ্ট উদাহরণ রয়েছে। C ++ 2003, §7.1.3/২:

একটি প্রদত্ত অ শ্রেণীর শ্রেণীতে, একটি টাইপেড স্পেসিফিকের নাম ঘোষিত যে কোনো প্রকারের নাম পুনরায় সংজ্ঞায়িত করতে ব্যবহার করা যেতে পারে   যে সুযোগ টাইপ যা এটি ইতিমধ্যেই বোঝায় উল্লেখ। [পারে উদাহরণ করুন :?

typedef struct s { /* ... */ } s;
typedef int I;
typedef int I;
typedef I I;

- শেষ উদাহরণ ]

7.1.3 তে, 3) বলা হয়েছে যে টাইপেফকে অন্য ধরনের টাইপ থেকে আলাদা করে টাইপ করার জন্য এটি নিষিদ্ধ

0
যোগ
তাদের মধ্যে পার্থক্য কী? আপনার পোস্টটি যথেষ্ট স্পষ্ট নয়, যেমনটা আমি দুইবার একই টাইপফিড দেখেছি, তবুও তাদের মধ্যে একজন বৈধ, অন্যটি নয়।
যোগ লেখক Nawaz, উৎস
আমার প্রথম ব্লক এবং আমার দ্বিতীয় ব্লকের মধ্যে পার্থক্য "অনুরোধ" এর পূর্বের সংজ্ঞা।
যোগ লেখক Robᵩ, উৎস

If Request is only passed as a parameter it seems to be a opaque pointer.
There should be a

typedef struct Request Request 

কোথাও কোড। (আপনার প্রশ্নের মন্তব্য দেখুন)
এটি একটি API সংজ্ঞায়িত এবং কার্যকারিতা বিবরণ গোপন করতে ব্যবহৃত হয়। তাই আপনি পরে আবার API পরিবর্তন ছাড়া বাস্তবায়ন পরিবর্তন করতে পারেন।

ক্লায়েন্টের acutal টাইপ সম্পর্কে কিছু জানতে হবে না - এটি একটি হ্যান্ডেল ধরনের।
আপনি যা করতে চান তা api পদ্ধতি (সৃষ্টি, মুছে ফেলুন, লোড, init, ...)
এর সাথে সম্পন্ন করতে হবে সাধারণত হ্যান্ডেল <�কোড> অনুরোধ </কোড> api এর বাস্তবায়নে আরো অর্থপূর্ণ কিছুকে নিক্ষেপ করা হবে। এটি সাধারণত পুরোনো সি করা হয়

0
যোগ
এটি সি ++ প্রশ্ন। C এর বিপরীতে, C ++ এ, স্ট্রট নামটি স্বয়ংক্রিয়ভাবে টাইপের নাম বলে, তাই আমি নিশ্চিত নই যে আপনি কেন typedef struct অনুরোধ অনুরোধ কোথাও কোথাও ফরোয়ার্ড ঘোষণা হিসাবে এটি struct অনুরোধের জন্য যথেষ্ট হবে; । অথবা আমি এখানে কিছু অনুপস্থিত?
যোগ লেখক hyde, উৎস