যদি আমার থাকে:
struct whatever {
int data;
};
volatile whatever test;
হবে test.dataখুব উদ্বায়ী হবে?
যদি আমার থাকে:
struct whatever {
int data;
};
volatile whatever test;
হবে test.dataখুব উদ্বায়ী হবে?
উত্তর:
আরেকটি প্রশ্ন জিজ্ঞাসা করা যেতে পারে (বা মূল প্রশ্নটি দেখার জন্য কেবল অন্য উপায়):
constতৈরি করা কি তার সমস্ত সদস্যকে তৈরি করে const?যদি আমার থাকে:
struct whatever { int data; };
const whatever test;
টেস্ট.ডাটা কি constহবে?
আমার উত্তর: হ্যাঁ আপনি যদি কোনও ধরণের বিষয়বস্তু ঘোষণা whateverকরেন constতবে এর সমস্ত সদস্যও constখুব বেশি হবে
একইভাবে, যদি আপনি প্রকারের একটি বস্তু ঘোষণা whateverদিয়ে volatileতারপর তার সকল সদস্যদের হতে হবে volatileখুব, যদি আপনার সাথে বস্তুর ঘোষণা ঠিক const, এটা সব সদস্য হতে হবে constখুব।
constএবং volatileএকই মুদ্রার দুটি মুখ; তারা এমন যাতে স্ট্যান্ডার্ড প্রায়শই তাদের হিসাবে উল্লেখ করে cv-qualifiers।
স্ট্যান্ডার্ড থেকে উদ্ধৃতি (.1 7.1.5.1 / 8)
[দ্রষ্টব্য: অস্থিতিশীলতা অবজেক্টের সাথে জড়িত আক্রমণাত্মক অপ্টিমাইজেশন এড়ানোর জন্য বাস্তবায়নের জন্য একটি ইঙ্গিত কারণ কারণ কোনও প্রয়োগের মাধ্যমে অবজেক্টের মান নির্ধারণ করা যায় না বলে বস্তুর মান পরিবর্তন করা যেতে পারে। বিস্তারিত শব্দার্থবিজ্ঞানের জন্য 1.9 দেখুন। সাধারণভাবে, উদ্বোধনের শব্দার্থকগুলি সি + তে যেমন হয় তেমনই হ'ল]
এর অর্থ, যদি আপনার অবজেক্টটি কোনও কাঠামোর উদাহরণ হয় , তবে সংকলকটি বস্তুর সাথে জড়িত আক্রমণাত্মক অনুকূলতা এড়াতে পারে না , যদি না এটি তার প্রতিটি সদস্যের আক্রমণাত্মক অপ্টিমাইজেশন এড়িয়ে চলে। (অন্যথায়, কীভাবে এটি বস্তুর সাথে জড়িত অপ্টিমাইজেশন এড়াতে পারে?)
সম্পর্কিত বিষয়:
থেকে: http://msdn.microsoft.com/en-us/library/145yc477%28v=vs.80%29.aspx
পয়েন্টার দ্বারা নির্দেশিত বস্তুটিকে কনস্ট বা অস্থির হিসাবে ঘোষণা করতে, ফর্মটির ডিক্লেয়ারেশন ব্যবহার করুন:
const char *cpch;
volatile char *vpch;
পয়েন্টারের মান ঘোষণা করতে - অর্থাৎ পয়েন্টারে সঞ্চিত প্রকৃত ঠিকানা - কনস্ট বা অস্থির হিসাবে, ফর্মটির একটি ঘোষণাপত্র ব্যবহার করুন:
char * const pchc;
char * volatile pchv;
volatileসদস্য ফাংশন থাকা কেবলthisপয়েন্টারকেই অস্থির করে তোলে , তাই সদস্যরা যতবার অ্যাক্সেস করা হয় ততবার মেমরি থেকে পড়তে হবে তবে "আনুষ্ঠানিকভাবে" অস্থির হয় না।