Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

ʹÓÃCÓïÑÔÀ©Õ¹Python£¨Ò»£©

¿ª·¢»·¾³£ºUbuntu9.10,python2.6,gcc4.4.11,ubuntuϵÄpythonÔËÐаüºÍ¿ª·¢°üÊÇ·Ö¿ªµÄ£¬Òò´ËÐèÒªÔÚÐÂÀûµÃÀïÃæ°²×°python-all-dev,´Ó¶ø¿ÉÒÔÔÚ´úÂëÖÐÒýÓÃpythonµÄÍ·ÎļþºÍ¿â¡£2.ÏÂÃæÊÇÒ»¸ö×î¼òµ¥µÄ¿ÉÒÔ¹©pythonµ÷ÓõÄcÀ©Õ¹Ä£¿é£¬¼ÙÉèc³ÌÐòÎļþÃûΪfoo.c:´úÂë#include <Python.h>
static PyObject* foo_bar(PyObject* self, PyObject* args) {
    Py_RETURN_NONE;
}
static PyMethodDef foo_methods[] = {
    {"bar",(PyCFunction)foo_bar,METH_NOARGS,NULL},
    {NULL,NULL,0,NULL}
};
PyMODINIT_FUNC initfoo() {
    Py_InitModule3("foo", foo_methods, "My first extension module.");
}      ÎÒÃÇ¿ÉÒÔ½«ÉÏÊöÄ£¿é·Ö³É3¸ö²¿·Ö£º1£©cÄ£¿éÏë¶ÔÍⱩ¶µÄ½Ó¿Úº¯Êý¡£2£©Ìṩ¸øÍⲿµÄpython³ÌÐòʹÓõÄÒ»¸öcÄ£¿éº¯ÊýÃû³ÆÓ³Éä±í¡£3£©cÄ£¿éµÄ³õʼ»¯º¯Êý¡£Ä£¿éµÄµÚÒ»Ðн«Python.hÒýÈ뵽ģ¿éÖУ¬Õâ¸öÎļþ½«Ê¹µÃÄãµÄÄ£¿é¿ÉÒÔhook½øpythonµÄ½âÊÍÆ÷£¬´Ó¶ø¿ÉÒÔΪÍⲿµÄpython³ÌÐòËùʹÓá£cÄ£¿éÖеĺ¯ÊýÇ©ÃûÒ»°ãÓÐÏÂÁÐÈýÖÖÐÎʽ£ºPyObject* MyFunction(PyObject* self, PyObject* args);
PyObject* MyFunctionWithKeywords(PyObject* self, PyObject* args, PyObject* kw);
PyObject* MyFunctionWithNoArgs(PyObject* self);      Ò»°ãÎÒÃÇʹÓõÄÊǵÚÒ»ÖÖ·½Ê½£¬º¯ÊýµÄ²ÎÊý½«»áÒ»¸öÔª×é(tuple)µÄÐÎʽ´«½øÀ´£¬Òò´ËÎÒÃÇÔÚcÄ£¿éµÄº¯ÊýÖÐÐèÒª¶ÔÆä½øÐнâÎö¡£PythonÖв»ÄÜÏócÓïÑÔÒ»ÑùÉùÃ÷Ò»¸övoidÀàÐ͵ĺ¯Êý£¬Èç¹ûÄã²»Ï뺯Êý·µ»ØÒ»¸öÖµµÄ»°£¬ÄǾͷµ»ØÒ»¸öNONE,ÔÚÕâÀïÎÒÃÇ¿ÉÒÔͨ¹ýPythonÍ·ÎļþÖеÄÒ»¸öºêPy_RETURN_NONEÀ´ÊµÏÖ¡£CÄ£¿éÖеĺ¯ÊýÃû³ÆÆäʵ¶ÔÍⲿÀ´ËµÊDz»¿É¼ûµÄ£¬Òò´Ë¿ÉÒÔËæ±ãÄãÃüÃû£¬Ò»°ãÎÒÃÇ¿ÉÒÔʹÓÃstaticº¯Êý£¨ÕâÔÚCÓïÑÔÀï±íʾÔÚµ±Ç°ÎļþÒÔÍâÊDz»¿É¼ûµÄ£©¡£±¾Îĺ¯ÊýÃüÃû·½Ê½²ÉÓÃÄ£¿éÃû¼ÓÉϺ¯ÊýÃû£¬ÀýÈçfoo_bar,Õâ±íʾÔÚÄ£¿éfooÖлáÓÐÒ»¸öbarº¯Êý¡£È»ºó¾ÍÊǺ¯ÊýÓ³Éä±íÁË£¬ËüÊÇÒ»¸öPyMethodDef½á¹¹ÌåÊý×飬struct PyMethodDef {
    char* ml_name;
    PyCFunction ml_meth;
 &nb


Ïà¹ØÎĵµ£º

Ò»¸öC++µ÷ÓÃCµÄÀý×Ó

//cExample.h
#ifndef C_EXAMPLE_H
#define C_EXAMPLE_H
#ifdef __cplusplus
extern "C"
{
#endif
int add(int x, int y);
#ifdef __cplusplus
}
#endif
#endif
---------------------------------
//cExample.c
#include"cExample.h"
int add(int x, int y)
{
 return x + y;
}
----------------- ......

S3C24XXÌåϵµÄLinux GPIO¿ØÖÆÏà¹ØAPIʵÏÖ


GPIO£¨General Purpose Input/OutputµÄËõд£©¾ÍÊÇоƬµÄÒý½Å£¬Òý½ÅÊǿɱà³ÌµÄ¿É¶ÔÒý½ÅµÄ¹¤×÷ģʽ½øÐÐÉèÖãºÊäÈëģʽ(¼ì²âÊäÈëÐźÅ)£¬Êä³öģʽ(Êä³ö0»ò1)£¬¸ß×è״̬(³£ÓÃÓÚADת»»)£¬»¹ÓнûÖ¹»òÔÊÐíÉÏÄÚ²¿ÏÂÀ­µç×è(ÉÏÀ­£º¹Ü½Åͨ¹ýµç×è½Ó¸ßµçƽ£¬ÏÂÀ­£º¹Ü½Åͨ¹ýµç×è½ÓµØ£¬Ò²¿ÉÒÔÍⲿ½ÓÉÏÀ­»òÏÂÀ­µç×è)£¬»¹ÓйܽŸ´Óõȹ¦ÄÜ£¬ ......

C/C++ÄÚ´æ¹ÜÀíÖ®ÄÚ´æÐ¹Â©¼ì²é

Ò»£®   ¸ÅÊö
    ÄÚ´æÐ¹Â©Ò»Ö±ÊÇÈí¼þ¿ª·¢ÈËÔ±×îÍ·´óµÄÎÊÌâÖ®Ò»£¬ÓÈÆäÏñC/C++ÕâÑù×ÔÓɶȷdz£´óµÄ±à³ÌÓïÑÔ£¬¼¸ºõÊÇÿһ¸öÓÃÆä¿ª·¢³öÀ´µÄÈí¼þ¶¼»á³öÏÖÄÚ´æÐ¹Â©µÄÇé¿ö¡£
    Èç¹ûûÓÐÄÚ´æÐ¹Â©£¬ÊÀ½ç»òÐí»á±äµÄÃÀºÃ¡£È»¶ø£¬ÍêÈ«ÃÀºÃµÄÊÀ½çÊDz»´æÔڵģ¬ÎÒÃÇÄÜ×öµÄ¾ÍÊǾ¡Á¿ÈÃËü±äµÄ¸üÃÀ ......

C/C++ÄÚ´æ·ÖÅä


#include <iostream>
using namespace std;
void main()
{
 char *p,*q;
 p = "abcde";
 q = p + 3;
 *q = 't';
 cout<<p<<endl;
 cout<<q<<endl;
}
Á½ÖÖÓïÑÔ±àÒë¶¼¿ÉÒÔͨ¹ý
µ±Ö´Ðе½
 *q = 't';
ʱ£¬C++³ÌÐò³öÏÖÄÚ´æ·ÃÎÊ´íÎó£¬C³ÌÐò¿ÉÒ ......

c±ê×¼

developerWorks Öйú > Linux > Óà C99 ½øÐпª·ÅÔ´´úÂëµÄ¿ª·¢ÄúµÄ C ´úÂë·ûºÏ±ê×¼Â𣿠ÎĵµÑ¡Ïî ´òÓ¡±¾Ò³ ½«´ËÒ³×÷Ϊµç×ÓÓʼþ·¢ËÍ ¼¶±ð£º ³õ¼¶ Peter Seebach (developerworks@seebs.plethora.net), ×ÔÓÉ×÷¼Ò 2004 Äê 4 Ô 01 ÈÕ C99 ÊÇʲô£¿Ë­ÐèÒªËü£¿Ëü¿ÉÓÃÁËÂð£¿Poter Seebach ÌÖÂÛÁË ISO C ±ê×¼µÄ 1999 ÄêÐÞ¶©°æ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ