زبان برنامه نویسی سی/تبدیل و جایگزینی داده‌ها: تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
بدون خلاصۀ ویرایش
بدون خلاصۀ ویرایش
خط ۳۱۵:
 
ما در زبان C مجاز هستیم تا اشاره‌گرها را نیز با کمک typedef تعریف و جایگزین نمائیم مثلاً typedef int* iptr شناسه iptr را به عنوان اعلان کننده اشاره‌گری از نوع صحیح تعریف می‌کند . بنابراین با الگوی نوشته شده اگر در داخل برنامه خود بنویسیم : iptr *a شناسه a اشاره‌گر به اشاره‌گری از نوع صحیح خواهد بود و iptr b[10] شناسه b را به عنوان آرایه ۱۰ عنصری از اشاره‌گر از نوع صحیح تعریف می‌کند
 
از کلیدواژه typedef می‌توان برای تعریف ساختمان‌ها و اجتماع‌ها هم استفاده کرد . برای این کار هم می‌توانید با استفاده از typedef و نوشتن کلیدواژه struct یا union و استفاده از نام برچسب ساختمان یا اجتماع ( به ترتیب ) و سپس با نام جایگزین شناسه جدیدی برای تعریف نمونه استفاده کنید و هم می‌توانید هنگام تعریف ساختمان یا اجتماع ، پیش از کلیدواژه struct یا union کلیدواژه typedef را بنویسید سپس برچسب ساختمان یا اجتماع را نوشته و سپس بعد از بلوک و پیش از سمی‌کالن ( نقطه ویرگول ) ساختمان یا اجتماع نام یا نام‌های جایگزین را بنویسید و سپس با نام جایگزین نمونه یا نمونه‌هایی ایجاد کنید
 
مثال :
 
{{چپ‌چین}}
<source lang="C#">
#include<stdio.h>
 
int main(void)
{
struct mystr
{
int a;
long l;
char c;
};
typedef struct mystr mysamp;
mysamp firststr;
printf("%d, %d, %c\n", firststr.a = 5, firststr.l = 9588479, firststr.c = 'H');
return 0;
}
</source>
{{پایان چپ‌چین}}
 
{{چپ‌چین}}
<source lang="C#">
#include<stdio.h>
 
int main(void)
{
typedef struct mystr
{
int a;
long l;
char c;
}sample, mysamp;
mysamp firststr;
printf("%d, %d, %c\n", firststr.a = 5, firststr.l = 9588479, firststr.c = 'H');
return 0;
}
</source>
{{پایان چپ‌چین}}
 
در هر دو مثال برای ساختمان mystr با کمک نام جایگزین mysamp نمونه firststr را ایجاد کرده و در تابع printf به اعضای ساختمان مقدار داده و آنها را نمایش داده‌ایم ولی دو با شکل متفاوت و در مثال دوم دو جایگزین برای ساختمان mystr ایجاد کرده‌ایم که از اولی یعنی sample استفاده‌ای نشده است اما مجازیم تا از آن نیز برای ایجاد نمونه‌هایی از ساختمان mystr استفاده کنیم
 
[[رده:زبان برنامه نویسی سی]]