PDA

نسخه کامل مشاهده نسخه کامل : Name Mangling چیه؟



jeremy28
26-06-2010, 09:49
سلام
من می خوام مفهوم دقیق name mangling و نحوه استفاده از اون در برنامه نویسی رو بدونم.
توضیحات موجود در ویکی پدیا و msdn رو خوندم، ولی هنوز نحوه عملکرد و استفاده از اون رو در برنامه نویسی یا کتابخونه ها خوب نفهمیدم!
دوست دارم یه نفر که از این مفهوم استفاده کرده و در این زمینه تجربه داره، با زبون ساده و در صورت امکان کامل اون رو بهم توضیح بده.
ممنون میشم اگر این لطف رو بکنید.

sin2x=2sinxcosx
26-06-2010, 13:12
سلام .
تا اونجایی که می دونم برنامه نویس با این مفهوم سر و کار نداره و این مبحث مربوط میشه به کامپایلر و Name Mangling رو کامپایلر انجام می ده .
مثلا شما تو برنامه تون دو identifier همنام تعریف کردین و دارین هر کدوم رو یه جایی استفاده می کنین . کامپایلر برای تشخیص و تمیز دادن این دو از هم ، این نام ها رو Mangle می کنه و به اسم های متمایز تبدیل می کنه تا خودش بتونه تشخیص بده . مثلا دو تابع با نام یکسان تعریف کردین که در نوع یا تعداد پارامترها فرق می کنن . شما این دو تابع رو از طریق پارامترهاش تشخیص می دین و کامپایلر هم Name Mangling می کنه و اونجوری تشخیص می ده . که هر کامپایلر تکنیک خاص خودش رو برای این کار داره .