View Full Version : فرق typedef و define
hi.alir
شنبه 09 بهمن 1389, 19:19 عصر
دو کد زیر چه فرقی با هم دارند؟
typedef int i
define int i#
Salar Ashgi
یک شنبه 10 بهمن 1389, 00:05 صبح
با اینکه بارها بررسی شده ، ولی باز یک مثال میزنم :
#include <iostream>
#include <conio>
#define n 10;
int main(){
typedef int Integer;
//----------------
Integer a=4,b=3;
Integer c;
c=a+b;
cout<<c<<endl;//c=7
//===============
int k=n;
cout<<k<<endl;
getch();
}
اگه بخوام مختصرا توضیحی بدم :
Typedef : تعریف نوع داده ای های زبان ++C یا C به اسم دلخواه و مجاز دیگر .
define : بیشتر برای تعریف متغیرهای با مقدار ثابت ، که البته زیاد استفاده اش معمول نبوده
و بجای آن از Const استفاده میشود .
موفق باشید ./
r00tkit
یک شنبه 10 بهمن 1389, 10:41 صبح
typedef یک کلمهی کلیدی هستش برای تعریف مترادف برای type های موجود اما
#define یک preprocessor برای تعریف Macro ما دو نوع ماکرو داریم object-like و function-like
وقتی توی کد identifier یه ماکرو امد به جای identifier توکن مربوطه قرار داده می شه و هیچ متغیرهای با مقدار ثابت هم نداریم
که البته زیاد استفاده اش معمول نبوده
بهتره یه سر به winnt.h بندازید
Salar Ashgi
دوشنبه 11 بهمن 1389, 22:40 عصر
متغیرهای با مقدار ثابتهم نداریم
پس میشه بفرمائید فلسفه وجودی Const چی هست ؟!
در ضمن مطالب زیر رو هم داشته باشید :
You can use the #define directive to give a meaningful name to a constant in your program.
منبع (http://msdn.microsoft.com/en-us/library/teas0593%28v=vs.80%29.aspx)
Defined constants (#define)
You can define your own names for constants that you use very often without having to resort to memory-consuming variables, simply by using the #define preprocessor directive. Its format is:
منبع (http://www.cplusplus.com/doc/tutorial/constants/)
بهتره راجب پست هاتون کمی تامل کرده و همینطوری ارسال نکنید !!!
r00tkit
دوشنبه 11 بهمن 1389, 23:19 عصر
با احترام :
اقای اشکی این preprocessor متغیر با مقدار ثابت تعریف نمی کنه !!
فلسفهی وجودی const هم به define ربط نداره
و این متن های انگلیسی نگفتن این define متغیر ( با مقدار ثابت ) تعریف می کنه
مشکل من با این جمله اینه که شما گفتن متغیر
-----------------
توی این مباحث لازم نیست من فکر کنم فقط باید منابع رو بخونم چون قراره در مورد قرار داد هایی که دیگران نوشتن صحبت کنیم و البته من شعلهی گیر فنی رو کم می کنم باشد که همه گی رستگار باشیم ./
beginner1010
سه شنبه 12 بهمن 1389, 06:58 صبح
شاید از constant منظورش فقط متغیر نبوده مثل این
#include <iostream>
using namespace std;
#define ta_zamani_ke while
#define kochektar <
int main() {
int i = 0 , n = 5 ;
ta_zamani_ke (i kochektar n) {
cout << i << endl ;
i ++ ;
}
}
r00tkit
سه شنبه 12 بهمن 1389, 10:18 صبح
ما با منظور ها کار نداریم !! و ان چیزی که شما نوشتین هم چی رو می خواد نشون بده جز نوشتهی من
وقتی توی کد identifier یه ماکرو امد به جای identifier توکن مربوطه قرار داده می شه
بحث فلسفی/ علمی شد تاپیک ادامه پیدا نکنه بهتره
Salar Ashgi
سه شنبه 12 بهمن 1389, 13:22 عصر
مشکل من با این جمله اینه که شما گفتن متغیر
دوست گرامی ، مشکل شما اینجاست که بحث رو از Programming بطرف ادبیات فارسی می کشونید !
منظور بنده Constant Data Types یا بطور معادل Constant Variables میباشد ، امیدوارم متوجه منظور بنده
شده باشید ./
CPPDeveloper
سه شنبه 12 بهمن 1389, 13:30 عصر
دوست گرامی ، مشکل شما اینجاست که بحث رو از Programming بطرف ادبیات فارسی می کشونید !
منظور بنده Constant Data Types یا بطور معادل Constant Variables میباشد ، امیدوارم متوجه منظور بنده
شده باشید ./
دوستان جواب تمام این کشمکش ها اینجاست (http://stackoverflow.com/questions/4767677/c-constant-variable-is-it-a-correct-term)
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.