آیا میشه یک shell جدید با زبان اسمبلی درست کرد؟؟و آیا پرفورمنس (فارسیش رو نمیدونم دقیق اما فکر کنم بشه کیفیت؟؟ ) بهتری داره ؟؟ و اینکه میشه واقعا همچین کاری کرد؟؟بله. خیر. بله.
آیا میشه برای زبان سی کتابخانه ایی طراحی کرد که مفهوم شئ گرایی رو به این زبان اضافه کرد؟؟بله.
آیا نوع داده boolean ( در زبان سی ) وجود داره؟؟ من رفتم تحقیق کردم و فهمیدم نوع داده ایی به نام bool وجود نداره اما با یک کتابخانه خاص میشه ازش استفاده کرد.میتونید از byte یا char استفاده کنید.
از طرفی دیگه در استاندارد های جدید تر این نوع داده به صورت پیشفرض وجود داره!
کدومش بهتره اینکه از استانداره های جدید تر استفاده کنم یا از کتابخانه مطمعن؟؟
https://en.m.wikipedia.org/wiki/C_data_types
بله. خیر. بله.خب ولی باید سرعت و قدرت بهتری داشته باشه!!
میتونید از byte یا char استفاده کنید.byte / char?? متوجه نمیشم چرا از نوع کاراکتر؟؟ درضمن من داده ایی از نوع بایت ندیدم؟؟ چطوری از نوع بولین باید استفاده کنم؟؟
byte / char?? متوجه نمیشم چرا از نوع کاراکتر؟؟ درضمن من داده ایی از نوع بایت ندیدم؟؟ چطوری از نوع بولین باید استفاده کنم؟؟از char تا حجم کمتری را نسبت به int بگیره. نحوه استفاده رو تو هزارتا سایت توضیح داده
خب ولی باید سرعت و قدرت بهتری داشته باشه!!خیر
byte / char?? متوجه نمیشم چرا از نوع کاراکتر؟؟ درضمن من داده ایی از نوع بایت ندیدم؟؟ چطوری از نوع بولین باید استفاده کنم؟؟نوع byte رو توی سیپلاسپلاس یا زبانی مثل زبان برنامهنویسی Arduino میبینید. توی سی استاندارد، از همون char استفاده کنید. اگر ۰ باشه، false است و اگر هر چیز دیگهای باشه، true حساب میشه. توی C99 البته bool هم داریم که خیلی شبیه char عمل میکنه. با این تفاوت که مثلا ۲ و ۳ رو با هم برابر میدونه، در حالی که char اینطور عمل نمیکنه.
خیرمیشه بپرسم چرا خیر؟؟
نوع byte رو توی سیپلاسپلاس یا زبانی مثل زبان برنامهنویسی Arduino میبینید. توی سی استاندارد، از همون char استفاده کنید. اگر ۰ باشه، false است و اگر هر چیز دیگهای باشه، true حساب میشه. توی C99 البته bool هم داریم که خیلی شبیه char عمل میکنه. با این تفاوت که مثلا ۲ و ۳ رو با هم برابر میدونه، در حالی که char اینطور عمل نمیکنه.char ماله کاراکتر و رشته ست؟؟ بایت رو اصلا ندیدم ( نوع داده ) الان استانداردی که به صورت پیشفرض برای جی سی سی هست کدومه؟
میشه بپرسم چرا خیر؟؟در مورد کاربردهای اسمبلی مطالعه کنید.
الان استانداردی که به صورت پیشفرض برای جی سی سی هست کدومه؟جیسیسی از استانداردهای مختلفی پشتیبانی میکنه. پیشنهاد من برنامهنویسی با استاندارد C17 است.
دوست عزیز اگر به خاطر قابلیت حمل میگی که میشه در خود زبان سی هم اسمبلی نوشت!! در مورد کاربرد اسمبلی تا حدی که توان داشتم تحقیق کردم و خیلی هم بهش علاقه مندممیشه بپرسم چرا خیر؟؟در مورد کاربردهای اسمبلی مطالعه کنید.الان استانداردی که به صورت پیشفرض برای جی سی سی هست کدومه؟جیسیسی از استانداردهای مختلفی پشتیبانی میکنه. پیشنهاد من برنامهنویسی با استاندارد C17 است.
من خیلی مشتاقم بدونم چرا فکر میکنی اسمبلی باید کارایی بیشتری از سی بده…;D چون سریع، قدرتمند ، و دسترسی خیلی زیاده ببه سخت افزار داره !
;D چون سریع، قدرتمند ، و دسترسی خیلی زیاده ببه سخت افزار داره !برای نوشتن یک Shell چه دسترسیای به سختافزار لازم دارید که مثلا توی C یا Rust ندارید؟
دلم میخواد یک شل باشه که قابلیت شي گرایی داشته باشه!! و سرعت فوق الهاده ایی داشته باشه \\:D/;D چون سریع، قدرتمند ، و دسترسی خیلی زیاده ببه سخت افزار داره !برای نوشتن یک Shell چه دسترسیای به سختافزار لازم دارید که مثلا توی C یا Rust ندارید؟
#include <stdio.h>
#include <curses.h>
int main(){
initscr();
clear();
int f = 1;
while(f <= 10){
printw("%d\n\n", f);
f++;
}
refresh();
getch();
endwin();
return 0;
}
#include <stdio.h>
#include <curses.h>
int main(){
initscr();
clear();
int f = 1;
while(f <= 100){
printf("%d\n\n", f);
f++;
}
refresh();
getch();
endwin();
return 0;
}
البته شما میتونید به جای ۱۰۰ هر عددی که دوست دارید بزارید :Dدلم میخواد یک شل باشه که قابلیت شي گرایی داشته باشه!! و سرعت فوق الهاده ایی داشته باشه \\:D/میدونید که تقریباً همهٔ بزرگان برنامهنویسی به شدّت با مفهوم شیگرایی مخالفن؟
الان که برنامه نویسی حرفه ایی نیستم ولی در آینده پروژه ی خوبی میشه برای من ;) یک روز حتما عملیش میکنم وشاید ایده های دیگری هم بهش اضافه کردم
خب پس یم کتابخونه درست میکنم !! هرکسی دوست داشت استفاده کن هرکس هم نداشت نکنه! نه مثل زبان سی پلاس پلاس که ماهیت اصلیش شي گرایی باشه!!دلم میخواد یک شل باشه که قابلیت شي گرایی داشته باشه!! و سرعت فوق الهاده ایی داشته باشه \\:D/میدونید که تقریباً همهٔ بزرگان برنامهنویسی به شدّت با مفهوم شیگرایی مخالفن؟
الان که برنامه نویسی حرفه ایی نیستم ولی در آینده پروژه ی خوبی میشه برای من ;) یک روز حتما عملیش میکنم وشاید ایده های دیگری هم بهش اضافه کردم
دلم میخواد یک شل باشه که سرعت فوق الهاده ایی داشته باشه \\:D/برنامههایی که با C نوشته شدن از نظر شما سریع نیستن؟ تا چهقدر میخوای سریعش کنی؟ :/
تا دو یا سه و نیم برابر سریع تر!!و توانایی کامپایل یک میلیون و سیصد هزار دستور ( هرچقدر بیشتر بهتر ) با یک هسته داشته باشه!! البته ایده های زیادی دارم اما اول باید یادبگیرم و بعد عملی کنمدلم میخواد یک شل باشه که سرعت فوق الهاده ایی داشته باشه \\:D/برنامههایی که با C نوشته شدن از نظر شما سریع نیستن؟ تا چهقدر میخوای سریعش کنی؟ :/
نه مثل زبان سی پلاس پلاس که ماهیت اصلیش شي گرایی باشه!!البته زبان سیپلاسپلاس ماهیت اصلیش شئگرایی نیست. احتمالا با جاوا اشتباه گرفتید.
نه مثل زبان سی پلاس پلاس که ماهیت اصلیش شي گرایی باشه!!البته زبان سیپلاسپلاس ماهیت اصلیش شئگرایی نیست. احتمالا با جاوا اشتباه گرفتید.
[/quote
اگر درست گفته باشم ما در زبان سی پلاس پلاس مفهوم کلاس ها رو داریم ??? و اینکه ۹۰ درصد کسانی که با این برنامه کار میکنن دارن با مفهوم شي گرایی جلو میرن
نه مثل زبان سی پلاس پلاس که ماهیت اصلیش شي گرایی باشه!!البته زبان سیپلاسپلاس ماهیت اصلیش شئگرایی نیست. احتمالا با جاوا اشتباه گرفتید.
اگر درست گفته باشم ما در زبان سی پلاس پلاس مفهوم کلاس ها رو داریم ??? و اینکه ۹۰ درصد کسانی که با این برنامه کار میکنن دارن با مفهوم شي گرایی جلو میرن
دو یا سه و نیم برابر سریع تر!!و توانایی کامپایل یک میلیون و سیصد هزار دستور ( هرچقدر بیشتر بهتر ) با یک هسته داشته باشه!!بازدهی فقط در سرعت نیست، مولفه های مختلفی داره. سرعت توسعه هم هست که اسمبلی در تمام زبان های بدترینه. اگه یه برنامه با اسمبلی بنویسی خیلی باید بیشتر کد بزنی و برای توسعه و تغیرش معمولا اصلا نمیتونی کاری کنی، چیزی که سی، راست را قدرتمند میکنه اینکه هم سرعت توسعه خوبی دارن و هم سرعت اجرای خوبی.
حتی لینوس توروالدز هم مخالفهدلم میخواد یک شل باشه که قابلیت شي گرایی داشته باشه!! و سرعت فوق الهاده ایی داشته باشه \\:D/میدونید که تقریباً همهٔ بزرگان برنامهنویسی به شدّت با مفهوم شیگرایی مخالفن؟
الان که برنامه نویسی حرفه ایی نیستم ولی در آینده پروژه ی خوبی میشه برای من ;) یک روز حتما عملیش میکنم وشاید ایده های دیگری هم بهش اضافه کردم
۳:
آیا میشه برای زبان سی کتابخانه ایی طراحی کرد که مفهوم شئ گرایی رو به این زبان اضافه کرد؟؟
دلم میخواد یک شل باشه که قابلیت شي گرایی داشته باشه!! و سرعت فوق الهاده ایی داشته باشه \\:D/میدونید که تقریباً همهٔ بزرگان برنامهنویسی به شدّت با مفهوم شیگرایی مخالفن؟
الان که برنامه نویسی حرفه ایی نیستم ولی در آینده پروژه ی خوبی میشه برای من ;) یک روز حتما عملیش میکنم وشاید ایده های دیگری هم بهش اضافه کردم
۴:
آیا نوع داده boolean ( در زبان سی ) وجود داره؟؟ من رفتم تحقیق کردم و فهمیدم نوع داده ایی به نام bool وجود نداره اما با یک کتابخانه خاص میشه ازش استفاده کرد.
از طرفی دیگه در استاندارد های جدید تر این نوع داده به صورت پیشفرض وجود داره!
کدومش بهتره اینکه از استانداره های جدید تر استفاده کنم یا از کتابخانه مطمعن؟؟
زبان اسمبلی واقعا انعطاف پذیری خوبی دارهالبته کمترین انعطاف رو توی زبانهای برنامهنویسی، اسمبلی داره.
کدوم برنامه نویسان؟و اینکه چه جایگزینی پیشنهاد می دهند؟لطفا تمام پیغامتون رو در یک پست بنویسید، نه سه پست مختلف پشت هم.
زبان اسمبلی واقعا انعطاف پذیری خوبی دارهالبته کمترین انعطاف رو توی زبانهای برنامهنویسی، اسمبلی داره.
در کل، من یادگیری اسمبلی رو پیشنهاد میکنم، ولی کاربرد اسمبلی وقتیه که نیاز به دسترسی خاصی در سطح سختافزار دارید که بقیهٔ زبانها اون دسترسی رو بهتون نمیدن.کدوم برنامه نویسان؟و اینکه چه جایگزینی پیشنهاد می دهند؟
اتفاقا وقتی بخواید یک برنامه درست و حسابی و سطح پایین بنویسید اسمبلی حرف اول رو میزنه!! و فکر کنم
منظورشون لینوس توروالدز بود که راستم میگه و شي گرایی واقعا چیزه مزخرفیه!!
آیا آینده برای زبان اسمبلی وجود داره ؟؟ مخصوصا با وجود IOT
لطفا تمام پیغامتون رو در یک پست بنویسید، نه سه پست مختلف پشت هم.
#include <stdio.h>
#include <stdlib.h>
int main(){
int ran, my;
char ans = 'y';
ran = rand();
⚠ while(ans = 'y'){
printf("gues my number!:");
scanf("%d", &my);
if(ran == my){
printf("it is true\n");
printf("my number was%d, and your number was%d", ran, my);
}
else{
printf("\n it's wrong!my rand was %d", ran);
}
⚠ printf("do you wanna continue??(y/n):");
ans = getchar();
}
return 0;
}
خروجی:h.c: In function ‘main’:
h.c:18:34: warning: trigraph ??( ignored, use -trigraphs to enable [-Wtrigraphs]
18 | printf("do you wanna continue??(y/n):");
|
مورد دیگه ایی هم که هست تابع ()rand که یک عدد رندوم درست میکنه؛ برای من عدد تکراری درست میکنه!این طبیعه؟؟ انتظار خیلی بیشتری از این تابع داشتم :P بقیه زبان های برنامه نویسی هم عدد تکراری درست میکند یا فقط زبان سی و یا یک مشکلی پیش اومده؟؟؟
gues my number!:23
it's wrong!my rand was 1804289383do you wanna continuegues my number!:452
it's wrong!my rand was 1804289383do you wanna continuegues my number!:1804289383
it is true
my number was1804289383, and your number was1804289383do you wanna continuegues my number!:
یک باگ تویه این برنامه هست!! من حتی وقتی y رو میزنم برای من مینویسه عدد درسته !! نکته ایی هم که هست اینه که این برنامه باید با حلقه do while نوشته میشد اما خودم خواستم با این حلقه نوشته بشه.
به عنوان نظر شخصی باید بگم که یه ذره با سی میتونم ارتباط برقرار کنم ولی با اسمبلی اصلا.
من نمیدونم چجور عدد تصادفی هست که با هر بار تکرار یک ترتیب داره؟! به منم عدد تو رو داد.من خیلی راحت میتونستم کد هایی که تو کتاب هست رو کپی پیست کنم !!! اما اینکار رو نکردم!! حداقل از خلاقیت خودم استفاده کردم و تلاش کزدم 8)
کثیف تر هم میشه کد زد!
یادگیری اسمبلی خودش چند بخش داره من که دوست دام تو کامپیوتر و سیستم عامل خودم غرق بشم یا بهتره بگم تو کرنل! و اون سیستم کال ها زیبا رو با چشم های خودم ببینم.
هر ابزاری رو باید توی جای مناسب خودش استفاده کنی
اسمبلی برای ۹۹.۹۹٪ کار هایی که انجام میشه لازم نیست ولی یادگیریش برای کسی که میخاد یه درک عمیقی داشته باشه خیلی خوبه
خب اینکه عادی هست که این جوری بشه.SEED چی هست؟ من فکر کردم بعد از هربار اجرا عدد عوض میشه! باید تستتش کنم!!!ا
الان فکر کن چجوری باید یه عدد تصادفی تولید بشه؟ خب باید یه الگوریتم براش در نظر بگیری. فرقی نمی کنه که چی باشه به هر حال تصادفی بودنش اون جوری که فکر می کنی نیست. (به هر حال باید از یه جایی یه عدد جور کنه. به هر حال از هیچی نمی شه)
کامپیوتر برای تولید عدد تصادفی از یه منبع استفاده میکنه که موقع راه اندازی سامانه ایجاد میشه.
حالا اگه نیازه که عدد تولید شده توسط تابع rand تصادفی تر باشه (تصادفی نما تر) میتونی بذر تصادفی عوض کنی. برای این کار از تابع srand استفاده میشه. باید یه مقدار unsigned رو به عنوان آرگومان بهش بدی. (srand و rand هر دو تاشون توی stdlib.h هستن)
یه چیزی مثل زمان فعلی برای seed گزینه جالبی هست.
SEED چی هست؟ من فکر کردم بعد از هربار اجرا عدد عوض میشه! باید تستتش کنم!!!ا
آخ جون :D الان میرمSEED چی هست؟ من فکر کردم بعد از هربار اجرا عدد عوض میشه! باید تستتش کنم!!!اhttps://jadi.net/2019/04/computer-random
#include <stdio.h>
#include <math.h>
int main(){
int a, b, FLAG = 1;
while(FLAG){
printf("enter an integer:");
scanf("%d",&a);
if(a <= 1){
printf("give me another number");
FLAG = 0;
}
for(b =2; b<=sqrt(a);b++){
if(a % b == 0)
printf("not prime!\n");
else
printf("it's prime!\n");
}
}
return 0;
}
خطای کامپایلر:/usr/bin/ld: /tmp/ccw7HJgQ.o: in function `main':
a.c:(.text+0xd7): undefined reference to `sqrt'
با کامند های زیادی کامپایل کردم اما ارور میداد!! تویه stackowerflow نوشته بود آخر کامندت یدونه lm- اضافه کن؛ متاسفانه اونم ارور داد!gcc -lc -lm main.c
/usr/bin/ld: /tmp/cc7eJct0.o: in function `main':
a.c:(.text+0xd7): undefined reference to `sqrt'
collect2: error: ld returned 1 exit status
gcc run.c -lm
$ find / -name "libm.*" 2>/dev/null
/usr/lib/i386-linux-gnu/libm.so.6
/usr/lib/x86_64-linux-gnu/libm.so.6
/usr/lib/x86_64-linux-gnu/libm.so
/usr/lib/x86_64-linux-gnu/libm.a
$ gcc -print-search-dirs | grep /usr/lib/x86_64-linux-gnu/ --color
چرا کردم!!
محتویات نشانی که گفتید اونجا math.h هست را ارسال نکردید.
gcc -lm main.c
gcc -std=c99 -lm main.c
gcc -lm main.c -std=c99
اما هروقت میخوام با کتابخانه curses کار کنم فرقی نداره که آپشن lcurses- رو کجای کامند قرار بدم! واقعا عجیبه ???
cmake_minimum_required(VERSION 3.26)
project(test_c C)
set(CMAKE_C_STANDARD 17)
add_executable(test_c main.c)
target_link_libraries(test_c m)
من ترجیح می دم تنظیمات کاپایلر را واگذار کنم به cmakeدروغ چرا من زیادی آشنایی با cmake ندارم :P ولی باید یکم تحقیق کنم.کد: [انتخاب]cmake_minimum_required(VERSION 3.26)
project(test_c C)
set(CMAKE_C_STANDARD 17)
add_executable(test_c main.c)
target_link_libraries(test_c m)
جالب اینه اگر کد را C++ در نظر بگیرید به هیچ وجه پیام خطا نمی گیرید.
cmake .
make
Make, Qt Creator, Ninja, Android Studio, Apple's Xcode, and Microsoft Visual Studio