ʹÓÃCÓïÑÔÀ©Õ¹Python(¶þ)
ÔÚÉÏһƪÖÐÎÒÃÇÒѾʹÓÃcÓïÑÔʵÏÖÁËÒ»¸ö×î¼òµ¥µÄÀ©Õ¹Ä£¿é£¬ÕâһƪÖн«ÔÚÆä»ù´¡ÉϽøÐй¦Äܵķḻ¡£Ê×ÏÈÀ´¿¼ÂÇÈçºÎ´ÓÍⲿµÄPythonÏòCÄ£¿é´«µÝ½ø²ÎÊý£¬foo_bar2չʾÁËÈçºÎÏòCÄ£¿é´«µÝÕûÊý£¬¸¡µãÊý£¬×Ö·û´®Èý¸ö²ÎÊý£¬ÆäÖÐ"ids"Ö¸Ã÷ÁË´«Èë²ÎÊýµÄÊý¾ÝÀàÐÍ¡£PyArg_ParseTuple¸ºÔð¶Ôargs½øÐнâÎö£¬Èô½âÎöʧ°ÜÔò·µ»Ø0.´úÂë#include <Python.h>
static PyObject* foo_bar(PyObject* self, PyObject* args) {
Py_RETURN_NONE;
}
static PyObject* foo_bar2(PyObject* self, PyObject* args) {
int iNum;
double fNum;
char* str;
if (!PyArg_ParseTuple(args, "ids", &iNum, &fNum, &str)) {
return NULL;
}
Py_RETURN_NONE;
}
static PyMethodDef foo_methods[] = {
{"bar",(PyCFunction)foo_bar,METH_NOARGS,NULL},
{"bar2", (PyCFunction)foo_bar2,METH_VARARGS,NULL},
{NULL,NULL,0,NULL}
};
PyMODINIT_FUNC initfoo() {
Py_InitModule3("foo", foo_methods, "My first extension module.");
} Ä㻹¿ÉÒÔÖ¸¶¨¿ÉÑ¡µÄ²ÎÊý£¬Ö»ÐèҪͨ¹ýÔÚ¸ñʽ×Ö·û´®Öаüº¬Ò»¸ö"|"×Ö·û¼´¿É£¬ÈçÏÂËùʾ:´úÂëstatic PyObject* foo_bar2(PyObject* self, PyObject* args) {
int iNum;
double fNum;
char* str;
int iNum2 = 4;
double fNum2 = 5.0;
char *str2 = "hello";
if (!PyArg_ParseTuple(args, "ids|ids", &iNum, &fNum, &str,&iNum2, &fNum2, &str2)) {
Ïà¹ØÎĵµ£º
Õâ¸öÀà±íʾÔÚµ¥¶ÀµÄ¿ØÖÆÏß³ÌÖÐÔËÐеĻ¡£ÓÐÁ½ÖÖ·½·¨¿ÉÒÔÖ¸¶¨ÕâÖֻ£¬¸ø¹¹Ô캯Êý´«µÝ»Øµ÷¶ÔÏ󣬻òÕßÔÚ×ÓÀàÖÐÖØÐ´run() ·½·¨¡£ÆäËû·½·¨£¨³ýÁ˹¹Ô캯Êý)¶¼²»Ó¦ÔÚ×ÓÀàÖб»ÖØÐ´¡£»»¾ä»°Ëµ£¬ÔÚ×ÓÀàÖÐÖ»ÓÐ__init__()ºÍrun()·½·¨±»ÖØÐ´¡£
Ò»µ©Ï̶߳ÔÏó±»´´½¨£¬ËüµÄ»î¶¯ÐèҪͨ¹ýµ÷ÓÃÏ̵߳Ästart()·½·¨À´Æô¶¯¡£Õâ·½·¨ÔÙµ÷ÓÿØÖÆ ......
/*****************test.c****************/
#include <stdio.h>
#include <stdlib.h>
#include "addr.h"
int main()
{
int flag=1;
while(flag)
{
switch(choose_menu())
{
case 1:add_person();break;
case 2:show_person_in ......
¹ØÓڼǺÅÕ³Ìù²Ù×÷·û(token paste operator): ##
1. ¼òµ¥µÄ˵£¬“##”ÊÇÒ»ÖÖ·Ö¸ôÁ¬½Ó·½Ê½£¬ËüµÄ×÷ÓÃÊÇÏÈ·Ö¸ô£¬È»ºó½øÐÐÇ¿ÖÆÁ¬½Ó¡£
ÆäÖУ¬·Ö¸ôµÄ×÷ÓÃÀàËÆÓÚ¿Õ¸ñ¡£ÎÒÃÇÖªµÀÔÚÆÕͨµÄºê¶¨ÒåÖУ¬Ô¤´¦ÀíÆ÷Ò»°ã°Ñ¿Õ¸ñ
½âÊͳɷֶαêÖ¾£¬¶ÔÓÚÿһ¶ÎºÍÇ°Ãæ±È½Ï£ ......
#include<windows.h>
void Birthday();
int main()
{
Birthday();
return 0;
}
void Birthday()
{
unsigned frequency[]={392,392,440,392,523,494,
392,392,440,392,587,523,
......