View Full Version : حرفه ای: روش های جاگزین کردن دستورات مشابه خروجی و ورودی به جای دستوراتی مثل printf و یا scanf
motherboard
دوشنبه 29 اردیبهشت 1393, 13:14 عصر
سلام.خسته نباشید.همون طور که می دونید در زبان سی printf ویا scanf داریم و در سی پلاس پلاس cin و cout داریم.می خواستم بدونم ایا با خود زبان c میشه توابعی رو برای دستورات ورودی و خروجی به جای printf و وscanf ویا دستورات مشابه نوشت و کاری کرد که بدون استفاده از این دستورات ورودی و خروجی معمول در زبان c با استفاده از تابعی که خودمون نوشتیم مقدار متغیری رو وارد کنیم و یا در صفحه نمایشگر چاپ کنیم؟؟ اگر می شود ایا باید با استفاده از دستورات اسمبلی که در زبان c می توان نوشت این کار رو کرد؟؟:متفکر:
(while(c=1) printf(cpp=0
دوشنبه 29 اردیبهشت 1393, 18:12 عصر
این کاریه که خیلی ها دوست دارن انجام بدن -- منظورم از نو نویسی تابعیه که از قبل در کتابخانه استاندارد C وجود داره -- مثل همون دو تابعی که شما مثال زدید.
همونطور که می دونید، ساختن یک تابع محدود به متغیرها نیست -- بلکه میشه از توابع دیگر برای ساخت توابع استفاده بشه (Function call).
بستگی به نوع تابع داره: تابع بزرگ -- تابع کوچک.
توابعی مثل printf و scanf، به منظور انجام وظیفه، باید به کِرنل سیستم عامل درخواستی رو ارسال کنن (سیستم رو صدا بزنن - system call) تا درخواستی که ما از اونها کردیم (که بخونن یا بنویسن) رو به انجام برسونن.
بنابراین scanf درواقع به منظور خوندن و نوشتن (read - write) یک کاراکتر یا عدد صحیح یا اعشاری، نیاز به برنامه ریزی شدن در زبان اسمبلی داره (که البته نحوه برنامه ریزی شدن در زبان اسمبلی از ماشین به ماشین متفاوته).
هردو تابع باید روند خوندن و نوشتن رو به انجام برسونن.
من کدهای این دو تابع رو ندیدم -- اما همینقدر می دونم که این دو تابع عمل سطح پایین رو انجام میدن.
البته من نمیگم که کُل کدهای این دو تابع در زبان اسمبلی نوشته شدن -- اما نیازه که از دستور read و write استفاده بشه -- درواقع باید سیستم رو صدا بزنن.
توضیحات من بسیار مختصر و ناقصه. برای اینکه بهتر متوجه بشی، به بچه های اسمبلی در این انجمن رجوع کن + مطالبی رو درباره نوشتن توابع این چنینی مطالعه کن + یادگیری زبان اسمبلی (معماری های Intel و AMD) این روزها برای یک برنامه نویس بسیار مفید و لازمه.
موفق باشی.
#target
دوشنبه 29 اردیبهشت 1393, 22:50 عصر
در ویندوز میتونین کنسول رو به عنوان یک فایل باز کنین و WriteFile و ReadFile انجام بدین
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.