Storage Class - کلاس های حافظه ؟ ؟

z.ghayoumi

New Member
با سلام .:)

1- کتابی که من از روی اون برنامه نویسی c++ رو کار می کنم . حدودا 5 صفحه ای در مورد storage class (کلاس های حافظه )
automatic - register و . . .
صحبت کرده می خواستم بپرسم با توجه به اینکه امروزه حافظه ها بسیار ارتقا
یافته اند . هنوز هم تعریف نوع کلاس حافظه ممکنه کاربرد داشته داشته باشد . .؟ مثلا بیشتر کجا باید نوع کلاس حافظه رو هم مشخص کرد .؟ ؟.

2-همین طور راجع به تابع inline ، (که به خاطر کاری که می کنه سرعت فراخوانی تابع رو بهتر می کنه )
با توجه به سرعت بالای کامپیوتر های امروزی . آیا این تابع استفاده معمول می شه ؟ ؟

با سپاس فراوان
 

saalek110

Well-Known Member
راجع به متغیر رجیستری چیزی که من یادمه و فکر کنم این طوری باشه اینه که این نوع متغیر در حافظه های خود cpu جای آن رزرو میشه و فراخوانی آن سریعتر است. و چون مقدار این حافظه های داخل cpu محدوده وقتی شما زیادی متغیر رجیستر تعریف کنید خودبخود کامپایلر به نوع دیگر تبدیلش می کنه.

=======================
راجع به توابع inline
از این آدرس:
http://209.85.135.104/search?q=cach...tml+"c+programming"+inline&hl=en&ct=clnk&cd=1
البته آدرس سایت نیست و کچ گوگل است
اینها را پیدا کردم:
7.2 Inline Functions
Inline functions are a C++ concept which can be implemented in ANSI C as macro #defines. Using inline functions offers improved performance.

Rec. 29 : Small functions such as accessor functions which return the value of a class member or may be declared inline.

Rec. 30 : Forwarding functions which simply call other functions may be declared inline

Rec. 31 : Constructors and destructors must not be inline.

و اینجا:
http://www.cyberdiem.com/vin/learn.html
گفته :
If you just use C++ as a better C, you will not be using all of its power. Like any quality tool, C++ must be used the way it was designed to be used to exploit its richness. Some of the new features include encapsulation, inline function calls, overloading operators, inheritance and polymorphism. I am not going to explain what they mean here as that would simply take me away from my purpose here, but you can refer to any good C++ book or the C++ FAQ for more information.
منظورم اینه که شاید این کار مربوط به سی پلاس(نه سی) باشد. ولی اطلاع درست ندارم.
 
آخرین ویرایش:

saalek110

Well-Known Member
و اینجا :
http://www.cprogramming.com/tutorial/lesson13.html
-------------------------------------------------------
گفته :

How does this make the program go faster? Simple, function calls are simply more time consuming than writing all of the code without functions. To go through your program and replace a function you have used 100 times with the code from the function would be time consuming not too bright. Of course, by using the inline function to replace the function calls with code you will also greatly increase the size of your program.

میزان افزایش سرعت - مزیت inline و غیره.

و کدی هم در این صفحه داریم:

کد:
#include <iostream>

using namespace std;

inline void hello()
{ 
  cout<<"hello";
}
int main()
{
  hello(); //Call it like a normal function...
  cin.get();
}

که به این شکل من در توربو سی 4 و نیم توانستم اجراش کنم:

کد:
#include <iostream[COLOR="Blue"].h[/COLOR]>

[COLOR="#0000ff"]//[/COLOR]using namespace std;

inline void hello()
{
  cout<<"hello";
}
int main()
{
  hello(); //Call it like a normal function...
  cin.get();
}
 

جدیدترین ارسال ها

بالا