OOC-GCC基本结构图[0.6][终于有时间整点相关的文档了]
OOC-GCC特性介绍与使用说明

Hello,OOC World![Chap2Sec1-3][GFDL]

pingf posted @ Sat, 28 May 2011 20:24:56 -1100 in 未分类 , 3294 readers

项目地址(点击超链) OOC_GCC 

注意:OOC_GCC 源码以LGPL发布,文档为GFDL,文档相关测试用例为GPL3

Web版文档发布暂定为项目托管地SVN仓库,WikiPage,"这里",以及我的博客.

转载请注明出处


Hello,OOC World!


                ---- 原始作者: 大孟  pingf0@gmail.com


                                          崇 尚 开 源 , 热 爱 分 享 !  


这份Tutorial性质的文档其实很扯的,非要啰嗦些用C语言进行面向对象开发的基本内容

 

版权说明

License Type: GFDL

Copyright (C) 2011-2011 Jesse Meng  pingf0@gmail.com
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation;with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.A copy of the license is included in the section entitled “GNU Free Documentation License”.

OOC-GCC为开源软件,遵循LGPL3协议发布,本手册为相关配套文档,采用GFDL协议发布,本手册中提供的相关示例代码以及简化版的OOC-LITE 需遵循GPL3协议.任何使用请遵循相关协议, 如有和协议相冲突的特殊要求, 请联系我[ pingf0@gmail.com ]

第二章 { 伸展运动 }

 

 


 

1. < CLASS,CTOR,DTOR >

宏是一个十分强大的特性,某些人的观点是通过宏实际上我们可以创立一个新的语言!当然个人认为只是形式上罢了.不过通过宏,代码看起来真的可以很简洁,很强大.比如下面所介绍的,将用一些简单的宏让C代码看上去有点C++的味道.


#include "OOC.h"
CLASS(A){
        int a;
        void (*showA)(A *);
};
static void A_showA(A *THIS){
        printf("the value of obj's a is %d\n",THIS->a);
}
CTOR(A){
        THIS->a=100;
        THIS->showA=A_showA;
}
DTOR(A){
        THIS->a=0;
        THIS->showA=NULL;
}
int main(){
        A * obj=newA();
        obj->showA(obj);
        delA(&obj);
        return 0;
}

这个例子中用到了三个宏,分别是CLASS,CTOR(对应CONSTRUCTOR),DTOR(对应DESTRUCTOR). 如果把他们展开,其实和前面"对称之美"一节中的代码是一样的.但又不一样,因为使用了宏,可读性大大提高, 而代码量大大减少(上面的代码和上一章中的对比减少了约1/3)!这只是一个简单的类的模拟,如果类比较多且继生关系比较复杂, 那么节省的代码量还是相当可观的.

 

不过这里还是要再次强调一下,宏是好东西,但如果滥用反而会使可读性大大降低,难懂不说,还不利于以后的维护.

关于本手册中的宏的设计,我尽量做到简单明了,易于记忆.

 

闲话少扯,现在具体来看一下CLASS,CTOR和DTOR宏具体是怎么实现的.

#include <stdio.h>
#include <stdlib.h>
#define CLASS(Type) \
typedef struct _##Type Type; \
void ini##Type(struct _##Type *); \
void fin##Type(struct _##Type *); \
Type * new##Type(); \
void del##Type(struct _##Type **); \
struct _##Type

#define CTOR(Type) \
Type * new##Type() { \
    Type *THIS; \
    THIS=(Type*)calloc(1,sizeof(Type)); \
    if( NULL==THIS ) { \
        return NULL; \
    } \
    ini##Type(THIS); \
    return THIS; \
} \
void ini##Type(Type * THIS)

#define DTOR(Type) \
void del##Type(Type **THIS) { \
    fin##Type(*(THIS)); \
    free(*(THIS)); \
    (*(THIS))=NULL; \
} \
void fin##Type(Type *THIS)

没错,就是这么简单!(当然如果你觉得这都算复杂了话,还是不要继续下面的文字了,这是我目前能做到的最简化的宏了)

下一节将会闲扯一些为什么这样设计,以及仅仅是这样还有那些不足.

 

2. < 从CLASS说起 >

 

C语言中直接使用结构体其实是件很麻烦的事,因为每次声明都要使用额外的"struct"来声明.一些初学C的人,特别从VC开始入门那些,总会分不清什么是C,什么是C++.特别是在struct声明这一块也特别容易按照懒省事儿的方法来写.但是我们应该知道一些事情----真正的纯C编译器如果不事先typedef一下是无法声明一个自定的结构体的实例的.

下面看一小段代码,演示如何将typedef与struct来结合.

typedef struct {int a;} A;
int main(){
        A obj;
        ojb.a=1;
        return 0;
}

关于typedef的语法,如果不牵扯结构体,是比较好理解的,比如"typedef int bool;"就是将原有的int型重定义为一个全新的bool型,尽管本质上它们是一样的.而一旦与结构体结合,就略微有些绕了.为了简化说明它的语法,上面的代码我做了一些处理,一是结构体本身匿名话,二是简化结构体内容并将其写到一行之内.这样我们看上去会十分明了还是"typedef struct ... A;"的形式,而"..."中我们其实定义了一个结构体的内容,只不过这个结构体本身是"匿名的".

更加常规的写法是,像下面这样.

typedef struct _A A;
struct _A{
        int a;
};
int main(){
        A obj;
        ojb.a=1;
        return 0;
}

CLASS宏中,也使用了和上面类似的做法来简化struct声明实例时的步骤.

#define CLASS(Type) \
typedef struct _##Type Type; \
void ini##Type(struct _##Type *); \
void fin##Type(struct _##Type *); \
Type * new##Type(); \
void del##Type(struct _##Type **); \
struct _##Type

CLASS宏不但简化了struct声明实例的工作,还声明了"四大函数"(将函数声明放在最前面是有好处的,它会让编译器在一开始就知道有这么些类型的函数).这四个函数其实是"两队",一对是ini和fin打头,另一对是new和del打头.其分别对应栈内存和堆内存上实例的构造与析构.

而CLASS宏的最后则是一个全开放的形式(这里的全开放是指某个宏不需要语气配合相对应的"截止"宏来保护一段代码),开头和结尾都是用C语言自身的"{"和"}"符合来指明.

在下一节,将会介绍用于构造和析构的CTOR和DTOR宏,而它们则封装了"四大函数"的具体实现.

 

3. < CTOR & DTOR >

这一节来说一下用于模拟构造函数的宏CTOR以及用于模拟析构函数的宏DTOR.先回顾下CTOR的定义.

#define CTOR(Type) \
Type * new##Type() { \
    Type *THIS; \
    THIS=(Type*)calloc(1,sizeof(Type)); \
    if( NULL==THIS ) { \
        return NULL; \
    } \
    ini##Type(THIS); \
    return THIS; \
} \
void ini##Type(Type * THIS)

假设我们还是要定义一个名为"A"的类,那么上面的代码中我们要把"Type"换成"A",并删除"##"(注意##在宏的使用中表示"连结").这样的话,我们就看到了一个完整的"newA"函数和一个没有写完的"iniA"函数(请参考上一节最后的"四大函数"一说).

"iniA"函数实际上是真正的构造函数,其负责一个"类"成员的初始化.但其没有写完,因为具体如何初始化是由我们自己说了算的,我们可以在其后面紧跟着写上"{ THIS->a=1; }"(假设A类中有int型成员变量a),这样就完成了一个简单的构造函数的实现.

我们要注意的是iniA函数要接受一个类实例指针,然后再对其进行初始化.也就是说这个函数本身是不涉及内存的分配的,我们可以传入一个指向栈内存的指针,也可以传入一个指向堆内存的指针,它都会对其进行"初始化"!但是如果我们使用堆内存,还要先定义一个指针,并指向一块malloc返回的内存再传入ini函数,这多少有些麻烦.为了方便的使用堆内存,上面的CTOR宏还给出了一个new函数,这里仍以一个名为"A"的类为例.newA就将malloc函数和iniA函数和二为一!我们使用的时候只需像"A * obj=newA();"这样即可,这大大方便了堆实例的使用!

不难发现,newA就是对iniA的一个简单封装,其做的工作就是"1.分配堆内存.2.调用ini函数.3.返回一个指向已分配内存的指针."这三块工作,这是有章可循的.也正因此,我们将其完全封装在CTOR宏之中.使用的时候我们几乎感觉不到它的存在,直接new就好.

下面再来看一下用于析构的DTOR宏,

#define DTOR(Type) \
void del##Type(Type **THIS) { \
    fin##Type(*(THIS)); \
    free(*(THIS)); \
    (*(THIS))=NULL; \
} \
void fin##Type(Type *THIS)

这里面定义了"四大函数"中用于析构的del函数和fin函数.其分别对应着前面的new函数和ini函数.我们可以对比着前面的讲述来理解.ini函数是真正的构造函数,fin函数是真正的析构函数.new是ini函数的一个封装,其做的具体工作就是先malloc在ini,del则是fin函数的一个封装,其做的具体工作是先fin再free.

当然因为有了new函数和del函数这样针对堆内存的封装,ini函数和fin函数更多的时候是与栈内存来配合使用的.

总的来看CTOR宏和DTOR宏,将涉及内存分配的部分独立出来可谓好处多多,不但可以更加自由且明确的使用栈内存和堆内存,还使得用于构造和析构的宏也能保持和前面CLASS宏一样的"全开放性",同时CTOR宏和DTOR宏几乎是完全对称的,这意味着我们只需理解一半,另一半就迎刃而解了.

 

despacito lyrics said:
Fri, 10 Nov 2017 20:27:46 -1100

The information you share is very useful. It is closely related to my work and has helped me grow. Thank you!

meidir said:
Mon, 29 Aug 2022 04:20:05 -1100

Ordinary comes to visit and listed below are one way to thanks for your time for one's exertion, which inturn means that So i'm seeing this website every single day, hunting for unique, important tips. A number of, many thanks! 補光燈

 

==================

 

Seriously sturdy, magnificent, fact-filled information and facts listed here. A person's discussions Never need disappoint, and the unquestionably is valid listed here in addition. You actually continually make a fun learn. Do you convey to I'm just happy?: )#) Keep up to date the nice reports. 雲台

 

==================

 

It is a fantastic write-up, Thank you regarding offering myself these records. Retain submitting. 電腦回收

 

=====================

 

With thanks to get furnishing recently available posts in connection with the dilemma, I actually look ahead to learn extra. Macbook回收

NCERT Urdu Question said:
Sat, 24 Sep 2022 20:17:14 -1100

Every student of Secondary education can download NCERT STD-10 Urdu Sample Paper 2023 with sample answers to gain high score by knowing the new exam scheme or question paper style for all exams such as SA1, SA2, FA1, FA2, FA3, FA4 and Assignments held under Term-1 & Term-2 of the course. The NCERT have introduced subject wide study & learning material for all regional students of the country. NCERT Urdu Question Paper Class 10 Every student of Secondary education can download NCERT STD-10 Urdu Sample Paper 2023 with sample answers to gain high score by knowing the new exam scheme or question paper style for all exams such as SA1, SA2, FA1, FA2, FA3, FA4.

seo service london said:
Tue, 21 Nov 2023 03:21:35 -1100

以更加自由且明确的使用栈内存

놈놈놈도메인 said:
Sun, 10 Dec 2023 18:54:02 -1100

Hi what an awe inspiring post I have gone over and trust me I have been paying special mind to this similar kind of post for late week and scarcely kept running over this. Much thanks and will look for more postings from you.

무지개벳 이벤트 said:
Sun, 10 Dec 2023 19:32:20 -1100

Easily, the article is actually the best topic on this registry related issue. I fit in with your conclusions and will eagerly look forward to your next updates. Just saying thanks will not just be sufficient, for the fantasti c lucidity in your writing. I will instantly grab your rss feed to stay informed of any updates.

가입머니주는사이트 said:
Sun, 10 Dec 2023 20:13:30 -1100

That is really something that we think about a ton. Right when we concocted our key strategy, the key section was individuals. Hopkins is mind blowing due to the general open who work here and learn here, so it's basic to use to keep them satisfied and secured.

사설토토사이트 said:
Sun, 10 Dec 2023 20:32:23 -1100

A debt of gratitude is in order for all the exertion in sharing this splendid post and I truly to welcome it. Your commitment and diligent work has helped you to deliver great quality articles this way Cool stuff you have and you keep upgrade all of us

토토쿠 said:
Sun, 10 Dec 2023 20:50:33 -1100

"A devotion of gratefulness is all together for all the exertion in sharing this amazing post and I truly to welcome it. Your obligation and dependable work has helped you to pass on amazing quality articles as such Stunning learning and I like to impart this sort of data to my companions and expectation they like it they why I do.
"

안전놀이터 추천 said:
Sun, 10 Dec 2023 21:29:53 -1100

his is my first time i visit here. I found so many entertaining stuff in your blog, especially its discussion. From the tons of comments on your articles, I guess I am not the only one having all the leisure here! Keep up the excellent work.

먹튀검증사이트 said:
Sun, 10 Dec 2023 21:51:36 -1100

his is my first time i visit here. I found so many entertaining stuff in your blog, especially its discussion. From the tons of comments on your articles, I guess I am not the only one having all the leisure here! Keep up the excellent work.

온오프카지노주소 said:
Sun, 10 Dec 2023 22:03:26 -1100

I would like to thank you for the efforts you have made in writing this article. I am hoping the same best work from you in the future as well. In fact your creative writing abilities has inspired me to start my own BlogEngine blog now. Really the blogging is spreading its wings rapidly. Your write up is a fine example of it.

먹튀검증커뮤니티모음 said:
Sun, 10 Dec 2023 22:17:44 -1100

I would like to thank you for the efforts you have made in writing this article. I am hoping the same best work from you in the future as well. In fact your creative writing abilities has inspired me to start my own BlogEngine blog now. Really the blogging is spreading its wings rapidly. Your write up is a fine example of it.

엔트리파워볼 said:
Sun, 10 Dec 2023 22:24:20 -1100

Easily, the article is actually the best topic on this registry related issue. I fit in with your conclusions and will eagerly look forward to your next updates. Just saying thanks will not just be sufficient, for the fantasti c lucidity in your writing. I will instantly grab your rss feed to stay informed of any updates

안전놀이터가입 said:
Sun, 10 Dec 2023 22:41:22 -1100

Easily, the article is actually the best topic on this registry related issue. I fit in with your conclusions and will eagerly look forward to your next updates. Just saying thanks will not just be sufficient, for the fantasti c lucidity in your writing. I will instantly grab your rss feed to stay informed of any updates.

안전놀이터순위 said:
Sun, 10 Dec 2023 22:43:01 -1100

Easily, the article is actually the best topic on this registry related issue. I fit in with your conclusions and will eagerly look forward to your next updates. Just saying thanks will not just be sufficient, for the fantasti c lucidity in your writing. I will instantly grab your rss feed to stay informed of any updates.

우리카지노 said:
Sun, 10 Dec 2023 23:18:43 -1100

Easily, the article is actually the best topic on this registry related issue. I fit in with your conclusions and will eagerly look forward to your next updates. Just saying thanks will not just be sufficient, for the fantasti c lucidity in your writing. I will instantly grab your rss feed to stay informed of any updates.

안전토토사이트주소 said:
Sun, 10 Dec 2023 23:28:39 -1100

I am always searching online for articles that can help me. There is obviously a lot to know about this. I think you made some good points in Features also. Keep working, great job! My friend mentioned to me your blog, so I thought I’d read it for myself.

먹튀사이트신고 said:
Sun, 10 Dec 2023 23:39:00 -1100

Easily, the article is actually the best topic on this registry related issue. I fit in with your conclusions and will eagerly look forward to your next updates. Just saying thanks will not just be sufficient, for the fantasti c lucidity in your writing. I will instantly grab your rss feed to stay informed of any updates.

파워볼사이트 said:
Sun, 10 Dec 2023 23:43:31 -1100

That is really something that we think about a ton. Right when we concocted our key strategy, the key section was individuals. Hopkins is mind blowing due to the general open who work here and learn here, so it's basic to use to keep them satisfied and secured.

안전한온라인카지노 said:
Sun, 10 Dec 2023 23:56:57 -1100

Easily, the article is actually the best topic on this registry related issue. I fit in with your conclusions and will eagerly look forward to your next updates. Just saying thanks will not just be sufficient, for the fantasti c lucidity in your writing. I will instantly grab your rss feed to stay informed of any updates.

메이저사이트주소 said:
Sun, 10 Dec 2023 23:58:40 -1100

Astonishingly made article, if just all bloggers offered a tantamount degree of substance as you, the web would be a phenomenally improved spot. Very personality blowing post, Thank you for sharing this information.

먹튀검증 커뮤니티 said:
Mon, 11 Dec 2023 00:15:55 -1100

Astonishingly made article, if just all bloggers offered a tantamount degree of substance as you, the web would be a phenomenally improved spot. Very personality blowing post, Thank you for sharing this information.

플러스카지노주소 said:
Mon, 11 Dec 2023 00:18:55 -1100

I would like to thank you for the efforts you have made in writing this article. I am hoping the same best work from you in the future as well. In fact your creative writing abilities has inspired me to start my own BlogEngine blog now. Really the blogging is spreading its wings rapidly. Your write up is a fine example of it.

실시간 바카라사이트 said:
Mon, 11 Dec 2023 00:50:12 -1100

A debt of gratitude is in order for all the exertion in sharing this splendid post and I truly to welcome it. Your commitment and diligent work has helped you to deliver great quality articles this way Cool stuff you have and you keep upgrade all of us

메이저토토사이트 said:
Mon, 11 Dec 2023 00:53:38 -1100

Hi I found your site by mistake when i was searching yahoo for this acne issue, I must say your site is really helpful I also love the design, its amazing!. I don’t have the time at the moment to fully read your site but I have bookmarked it and also add your RSS feeds. I will be back in a day or two. thanks for a great site.

에볼루션카지노 said:
Mon, 11 Dec 2023 01:05:45 -1100

A debt of gratitude is in order for all the exertion in sharing this splendid post and I truly to welcome it. Your commitment and diligent work has helped you to deliver great quality articles this way Cool stuff you have and you keep upgrade all of us

บาคาร่าออนไลน์ said:
Mon, 11 Dec 2023 01:18:45 -1100

I am always searching online for articles that can help me. There is obviously a lot to know about this. I think you made some good points in Features also. Keep working, great job! My friend mentioned to me your blog, so I thought I’d read it for myself.

안전공원추천 said:
Mon, 11 Dec 2023 01:21:28 -1100

I would like to thank you for the efforts you have made in writing this article. I am hoping the same best work from you in the future as well. In fact your creative writing abilities has inspired me to start my own BlogEngine blog now. Really the blogging is spreading its wings rapidly. Your write up is a fine example of it.

메이저놀이터검증 said:
Mon, 11 Dec 2023 01:32:03 -1100

 would like to thank you for the efforts you have made in writing this article. I am hoping the same best work from you in the future as well. In fact your creative writing abilities has inspired me to start my own BlogEngine blog now. Really the blogging is spreading its wings rapidly. Your write up is a fine example of it.

먹튀검증업체 said:
Mon, 11 Dec 2023 01:34:41 -1100

I am always searching online for articles that can help me. There is obviously a lot to know about this. I think you made some good points in Features also. Keep working, great job! My friend mentioned to me your blog, so I thought I’d read it for myself.

안전놀이터 said:
Mon, 11 Dec 2023 02:07:09 -1100

After investigation a portion of the substance in your site now, and I likewise extremely much like your system of blogging. I bookmarked it to my bookmark site list and will likewise be returning soon. Pls investigate my web website also and disclosed to me what you accept.

토토사이트추천 said:
Mon, 11 Dec 2023 02:32:51 -1100

I genuinely acknowledge fundamentally scrutinizing most of your weblogs. Simply expected to prompt you that you have people like me who worth your work. Absolutely a magnificent post. Tops off to you! The information that you have given is particularly used.

메리트카지노 said:
Mon, 11 Dec 2023 02:42:56 -1100

That is truly something that we consider a ton. At the point when we thought up our key course of action, the fundamental segment was people. Hopkins is mind blowing because of the overall public who work here and learn here, so it's critical to use to keep them fulfilled and locked in.

먹튀검증 said:
Mon, 11 Dec 2023 03:10:51 -1100

That is really something that we think about a ton. Right when we concocted our key strategy, the key section was individuals. Hopkins is mind blowing due to the general open who work here and learn here, so it's basic to use to keep them satisfied and secured.

안전놀이터추천 said:
Mon, 11 Dec 2023 03:39:07 -1100

I would like to thank you for the efforts you have made in writing this article. I am hoping the same best work from you in the future as well. In fact your creative writing abilities has inspired me to start my own BlogEngine blog now. Really the blogging is spreading its wings rapidly. Your write up is a fine example of it.

먹튀사이트 said:
Mon, 11 Dec 2023 03:57:56 -1100

Easily, the article is actually the best topic on this registry related issue. I fit in with your conclusions and will eagerly look forward to your next updates. Just saying thanks will not just be sufficient, for the fantasti c lucidity in your writing. I will instantly grab your rss feed to stay informed of any updates

메이저사이트 기준 said:
Mon, 11 Dec 2023 04:23:28 -1100

I would like to thank you for the efforts you have made in writing this article. I am hoping the same best work from you in the future as well. In fact your creative writing abilities has inspired me to start my own BlogEngine blog now. Really the blogging is spreading its wings rapidly. Your write up is a fine example of it.

토토지존 said:
Mon, 11 Dec 2023 05:05:00 -1100

his is my first time i visit here. I found so many entertaining stuff in your blog, especially its discussion. From the tons of comments on your articles, I guess I am not the only one having all the leisure here! Keep up the excellent work.

토토사이트추천 said:
Sat, 20 Jan 2024 20:02:02 -1100

This is a great inspiring article.I am pretty much pleased with your good work.You put really very helpful information

바카라사이트 said:
Sat, 20 Jan 2024 22:12:28 -1100

Joining all of these makes everything efficient both for the marketers and of course the consumers. No more need for excessive paid advertising. Marketers will only respond to the clients that really need their services or products.

카지노 커뮤니티 said:
Sat, 20 Jan 2024 22:34:33 -1100

I wanted to thank you for this excellent read!! I definitely loved every little bit of it. I have you bookmarked your site to check out the new stuff you post

먹튀검증 said:
Sat, 20 Jan 2024 23:03:44 -1100

It is somewhat fantastic, and yet check out the advice at this treat.

바카라 사이트 said:
Sat, 20 Jan 2024 23:53:10 -1100

Great webpage brother I am gona inform this to all my friends and contacts

카지노 커뮤니티 said:
Sun, 21 Jan 2024 00:10:55 -1100

Awesome article, it was exceptionally helpful! I simply began in this and I'm becoming more acquainted with it better. The post is written in very a good manner and it contains many useful information for me.

꽁머니 said:
Sun, 21 Jan 2024 00:44:24 -1100

I’ve been meditating on the identical issue personally recently. Pleased to see another person on the same wavelength! Nice article

꽁머니 said:
Sun, 21 Jan 2024 00:44:54 -1100

It’s super webpage, I was looking for something like this

먹튀검증 said:
Sun, 21 Jan 2024 01:34:01 -1100

It is somewhat fantastic, and yet check out the advice at this treat.

카지노사이트추천 said:
Sun, 21 Jan 2024 01:56:39 -1100

I don’t think many of websites provide this type of information.

industrial outdoor s said:
Sun, 21 Jan 2024 18:33:35 -1100

I think this is one of the most significant information for me. And i'm glad reading your article

카지노커뮤니티 said:
Sun, 21 Jan 2024 19:19:04 -1100

Very interesting  information!Perfect just what I was looking  for!

소액결제현금화 said:
Sun, 21 Jan 2024 19:49:12 -1100

I invite you to the page where you can read       with interesting information on similar topics.

고화질스포츠중계 said:
Sun, 21 Jan 2024 20:22:38 -1100

Awesome issues here. I'm very happy to see your post. Thank you a lot and I am taking a look forward to touch you. Will you kindly drop me a mail?

카지노사이트 said:
Sun, 21 Jan 2024 21:02:32 -1100

wow, awesome blog.Thanks Again. Much obliged

카지노사이트 said:
Tue, 23 Jan 2024 21:54:02 -1100

Very efficiently written information. It will be beneficial to anybody who utilizes it, including me. Keep up the good work. For sure i will check out more posts. This site seems to get a good amount of visitors

카지노 said:
Tue, 23 Jan 2024 23:27:59 -1100

Very efficiently written information. It will be beneficial to anybody who utilizes it, including me. Keep up the good work. For sure i will check out more posts. This site seems to get a good amount of visitors

토토검증사이트 said:
Wed, 24 Jan 2024 01:00:57 -1100

All Instagram users are aware that when it comes to the desktop version of this photo-sharing network there are many limitations. Well, Instagram was actually designed to post your everyday life pictures and hence in the desktop version, the users will find that there are limitations when it comes to sharing photos or sending Instagram chat on pc.

바카라 said:
Thu, 25 Jan 2024 19:59:42 -1100

바카라 바카라사이트 우리카지노 카지노는 바카라, 블랙잭, 룰렛 및 슬롯 등 다양한 게임을 즐기실 수 있는 공간입니다. 게임에서 승리하면 큰 환호와 함께 많은 당첨금을 받을 수 있고, 패배하면 아쉬움과 실망을 느끼게 됩니다.

하노이 가라오케 said:
Thu, 25 Jan 2024 20:07:43 -1100

하노이 꼭 가봐야 할 베스트 업소 추천 안내 및 예약, 하노이 밤문화 에 대해서 정리해 드립니다. 하노이 가라오케, 하노이 마사지, 하노이 풍선바, 하노이 밤문화를 제대로 즐기시기 바랍니다. 하노이 밤문화 베스트 업소 요약 베스트 업소 추천 및 정리.

안전놀이터 said:
Sun, 28 Jan 2024 19:13:45 -1100

No.1 먹튀검증 사이트, 먹튀사이트, 검증사이트, 토토사이트, 안전사이트, 메이저사이트, 안전놀이터 정보를 제공하고 있습니다. 먹튀해방으로 여러분들의 자산을 지켜 드리겠습니다. 먹튀검증 전문 커뮤니티 먹튀클린만 믿으세요!!

베트남 밤문화 said:
Sun, 28 Jan 2024 19:27:11 -1100

베트남 남성전용 커뮤니티❣️ 베트남 하이에나 에서 베트남 밤문화를 추천하여 드립니다. 베트남 가라오케, 베트남 VIP마사지, 베트남 이발관, 베트남 황제투어 남자라면 꼭 한번은 경험 해 봐야할 화끈한 밤문화로 모시겠습니다.

IT technology said:
Sun, 02 Jun 2024 21:38:51 -1100

The tech-original mission is to help you better understand technology, and make better decisions in the fields of IT, Tech, and Crypto.
https://www.tech-original.com/

IT technology said:
Fri, 07 Jun 2024 16:49:48 -1100

The tech-original mission is to help you better understand technology, and make better decisions in the fields of IT, Tech, and Crypto.
https://www.tech-original.com/


Login *


loading captcha image...
(type the code from the image)
or Ctrl+Enter