اطلاعیه

Collapse
No announcement yet.

نوشتن کلاس در زبان C ?

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    نوشتن کلاس در زبان C ?

    سلام
    مثل این که تو C نمیشه کلاس مثل تو C++ نوشت :NO: کسی راهی چیزی سراغ داره؟ که بشه کلاس تعریف کرد
    یا اصلا کسی سایت آموزش زبان c سراغ داره؟ چون ه جا من میرم C++ هستش :angry: ای بگم خدا این کدویژنو چیکار نکنه.....
    اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

    اگه دوس دارید سریع به جواب برسید :
    1) قبل از پرسیدن سوال، بسرچید.
    2) سوالاتون رو با جزئیات کامل مطرح کنید.

    #2
    پاسخ : نوشتن کلاس در زبان C ?

    نوشته اصلی توسط md3848
    سلام
    مثل این که تو C نمیشه کلاس مثل تو C++ نوشت :NO: کسی راهی چیزی سراغ داره؟ که بشه کلاس تعریف کرد
    یا اصلا کسی سایت آموزش زبان c سراغ داره؟ چون ه جا من میرم C++ هستش :angry: ای بگم خدا این کدویژنو چیکار نکنه.....
    سلام چون سی شیءگرا نیست پس این قابلیت رو نداره پس باید برید سمت C++ یا جاوا و یا هر زبان شیءگرای دیگه.
    [img width=281 height=100]http://cdn.persiangig.com/preview/acPBCNLNNr/images.jpg[/img]

    دیدگاه


      #3
      پاسخ : نوشتن کلاس در زبان C ?

      http://www.learncpp.com/
      Chapter 8 در مورد کلاس ها در cpp حرف زده.
      یک سایت در مورد زبان سی(فارسی):
      http://1computeri.ir/category/c/
      [img width=281 height=100]http://cdn.persiangig.com/preview/acPBCNLNNr/images.jpg[/img]

      دیدگاه


        #4
        پاسخ : نوشتن کلاس در زبان C ?

        نوشته اصلی توسط آرمان آروند
        سلام چون سی شیءگرا نیست پس این قابلیت رو نداره پس باید برید سمت C++ یا جاوا و یا هر زبان شیءگرای دیگه.
        CPP؟
        CODEVISION؟
        جل الخالق
        تنها راهش استفاده از IAR یا WINAVR هسش
        اتمل استودیو هم فک نمی کنم داشته باشه

        دیدگاه


          #5
          پاسخ : نوشتن کلاس در زبان C ?

          بنده نگفتم کدویژن این قابلیت رو داره.فقط در مورد کلاس ها حرف زدم.
          در ضمن اتمل استودیو این زبان رو داره و کلی امکانات دیگه مثل CMSIS برای هسته های m3 که رو چیپ های خود اتمل هست.
          [img width=281 height=100]http://cdn.persiangig.com/preview/acPBCNLNNr/images.jpg[/img]

          دیدگاه


            #6
            پاسخ : نوشتن کلاس در زبان C ?

            سلام به همگی ...
            میتونید تو C جوری برنامه بنویسید که مثل ++C بشه ....
            خیلی شبیه به ++C در میاد....
            * راهنمایی اینکه بجای کلمه کلاس از struct باید استفاده کنید ...
            * تموم متغیرها در struct تعریف میشن ...
            * تموم توابع در کلاس و بصورت function pointer تعریف میشن ...
            به این ترتیب میشه تو کدوبژن هم مثل ++c برنامه نوشت ...
            * یا اینکه کلان برید رو Atmel Studio کار کتید ....

            دیدگاه


              #7
              پاسخ : نوشتن کلاس در زبان C ?

              درسته ولی اون خاصیت شیءگرا رو نداره.
              این سبکی که شما می فرمایید کلاس کاری و مدیریت حافظه و ... رو بالا میبره.
              [img width=281 height=100]http://cdn.persiangig.com/preview/acPBCNLNNr/images.jpg[/img]

              دیدگاه


                #8
                پاسخ : نوشتن کلاس در زبان C ?

                اینم یه مثال ساده .. البته این واسه آرم و تو کیل نوشته شده ولی خیلی فرق نمیکنه میشه واسه همه میکروها همینطوری نوشت ... خیلی لذت بخشه ...

                اول کد .h

                [code=c]

                #ifndef ILSENSOR_H // Guard against multiple inclusion
                #define ILSENSOR_H

                #include "DIALOG.h"
                #include <stdlib.h>
                #include <string.h>
                #include "GRAPH.h"
                #include "lpc177x_8x_adc.h"
                #include "def.h"

                typedef enum SensorType{
                Analog = 0,
                Digital ,
                }SensorType;

                typedef struct CSensorStruct
                {

                U16 UpdateInterval;

                SensorType Type;

                float ScaleFactor;
                U16 ADCResolution;
                U16 Offset;
                U8 ChannelNumber;
                U8 Value;
                U8 (*SensorsRead) ( struct CSensorStruct * );
                U8 (*Sensor_Ready) ( struct CSensorStruct* , U16);

                }CSensor;


                void CSensor_Construct( CSensor* Me );

                #endif

                [/code]
                /////////////////////////////
                اینم از کد C

                [code=c]

                #include "CSensor.h"

                void CSensor_Initialize( struct CSensorStruct*);
                U8 Read( struct CSensorStruct*);
                U8 Ready( struct CSensorStruct* , U16 Counter);

                ///////////////////////////////////////////////////////////////////
                void Initialize( CSensor* me)
                {
                }
                ///////////////////////////////////////////////////////////////////
                U8 Read( struct CSensorStruct* me)
                {
                return me->Offset + ( ADC_ChannelGetData(LPC_ADC , me->ChannelNumber) / me->ScaleFactor ) ;
                }
                ///////////////////////////////////////////////////////////////////
                U8 Ready( struct CSensorStruct* me, U16 Counter)
                {
                if(Counter >= me->UpdateInterval) return TRUE;
                else return FALSE;
                }
                ///////////////////////////////////////////////////////////////////
                void CSensor_Construct( CSensor* Me )
                {
                Me->SensorsRead = &Read;
                Me->Sensor_Ready = &Ready;
                }


                [/code]

                دیدگاه


                  #9
                  پاسخ : نوشتن کلاس در زبان C ?

                  میتونید از struct یک pointer تعریف کنید ... فکر کنم خیلی حافظه مصرف نکنه .... البته اگر اشتباه میگم اصلاح کنید ...
                  من رو LPC1788 و EMWIN با این کار کردم ... تعداد فرم های زیادی هم داشتم ، هیچ مشکلی پیش نیومد ...

                  دیدگاه


                    #10
                    پاسخ : نوشتن کلاس در زبان C ?

                    http://www.eca.ir/forum2/index.php?topic=119121.0
                    [img width=281 height=100]http://cdn.persiangig.com/preview/acPBCNLNNr/images.jpg[/img]

                    دیدگاه


                      #11
                      پاسخ : نوشتن کلاس در زبان C ?

                      نوشته اصلی توسط آرمان آروند
                      بنده نگفتم کدویژن این قابلیت رو داره.فقط در مورد کلاس ها حرف زدم.
                      در ضمن اتمل استودیو این زبان رو داره و کلی امکانات دیگه مثل CMSIS برای هسته های m3 که رو چیپ های خود اتمل هست.
                      دوستمون دنبال روشی برای استفاده از شی گرایی در چیپ های AVR هسش نه ARM
                      CMSIS تا اون جا که من می دونم برای هسته های ARM نوشته شده.

                      دیدگاه


                        #12
                        پاسخ : نوشتن کلاس در زبان C ?

                        خب من که گفتم برای هسته های CORTEX-M3 هست و فقط برای نشون دادن قابلیت های اتمل استودیو گفتم، اول هم که گفتم برای برنامه نویسی شیءگرا باید بره سمت cpp و یا مشابهش.
                        البته به این که از چه پردازنده ایی استفاده میشه کاری نداره چون پایه زبان ها یکی هسنتد.
                        [img width=281 height=100]http://cdn.persiangig.com/preview/acPBCNLNNr/images.jpg[/img]

                        دیدگاه


                          #13
                          پاسخ : نوشتن کلاس در زبان C ?

                          درست نمیدونم درخواستتون از C برای چیه - ولی اگر با اون دسته از میکرو های avr کار میکنین که آردوینو ازشون استفاده کرده میتونید از خود کامپایلر آردوینو استفاده کنید (مثل مگا 1280-2560-328-32)

                          :job: :job:

                          دیدگاه


                            #14
                            پاسخ : نوشتن کلاس در زبان C ?

                            نوشته اصلی توسط md3848
                            سلام
                            مثل این که تو C نمیشه کلاس مثل تو C++ نوشت :NO: کسی راهی چیزی سراغ داره؟ که بشه کلاس تعریف کرد
                            یا اصلا کسی سایت آموزش زبان c سراغ داره؟ چون ه جا من میرم C++ هستش :angry: ای بگم خدا این کدویژنو چیکار نکنه.....

                            سی یه زبان تابع گراست
                            سی پلاس پلاس شی گرا

                            و اینکه سی خیلی سریعتر از سی پلاس پلاس هستش
                            من که سی رو ترجیح میدم
                            If the wind will not serve, take to the oars

                            دیدگاه

                            لطفا صبر کنید...
                            X